簡體   English   中英

VBA-粘貼值錯誤

[英]VBA- Paste Values error

我正在嘗試從另一個Excel工作表中粘貼值,但是下面的代碼始終返回錯誤。 我究竟做錯了什么 ?

設置tempWB = Application.Workbooks.Open(vrtSelectedItem)'這將打開參考工作簿

Sheets("Portfolio Worksheet 8.8").Select 'SELECT  A SHEET if you need to
Range("B16:B30").Select 'select SOME RANGE
Selection.Copy 'COPY SOME RANGE

mainWB.Activate 'activate your main workbook
Sheets("Sheet1").Select 'select target sheet
Range("C20").Select 'select target cell
ActiveSheet.PasteSpecial xlPasteValues 'paste the data from the reference worksheet

tempWB.Save 'save and close the reference workbook
tempWB.Close

無需任何選擇或復制粘貼

Set tempWB = Application.Workbooks.Open(vrtSelectedItem) 

With tempWB.Sheets("Portfolio Worksheet 8.8").Range("B16:B30")

    mainWB.Sheets("Sheet1").Range("C20").Resize(.Rows.Count, _
                                                .Columns.Count).Value = .Value
End With

tempWB.Save 'save and close the reference workbook
tempWB.Close

看起來您沒有聲明變量'mainWB'嗎?

下面的工作,謝謝你的建議,但是,如果我想同時復制粘貼幾個范圍。 因此,下面的代碼返回“ Next for”錯誤。 我認為**中的代碼的第二部分引起了問題

設置tempWB = Application.Workbooks.Open(vrtSelectedItem)'這將打開參考工作簿

                ' Sheets("Portfolio Worksheet 8.8").Select 'SELECT  A SHEET if you need to


               With mainWB.Sheets("Sheet1").Range("B16:B30")

                tempWB.Sheets("Sheet5").Range("B16:B30").Resize(.Rows.Count, _
                                           .Columns.Count).Value = .Value
                **With mainWB.Sheets("Sheet1").Range("D16:D30")
                tempWB.Sheets("Sheet5").Range("D16:D30").Resize(.Rows.Count, _
                                           .Columns.Count).Value = .Value**

                End With

                tempWB.Save 'save and close the reference workbook
                tempWB.Close

       Next vrtSelectedItem

    Else 'The user pressed Cancel.
    End If
End With

Set fd = Nothing 'Set the object variable to Nothing.

結束子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM