VBA-粘贴值错误

时间:2014-09-12 15:34:16

标签: vba excel-vba excel

我正在尝试粘贴其他Excel工作表中的值,但下面的代码会一直返回错误。我究竟做错了什么 ?

设置tempWB = Application.Workbooks.Open(vrtSelectedItem)'此OPENS参考工作簿

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

3 个答案:

答案 0 :(得分:1)

无需任何选择或复制粘贴

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

答案 1 :(得分:0)

看起来你没有声明你的变量'mainWB'?

答案 2 :(得分:0)

下面的内容有效,感谢您的建议,但是如果我想同时复制粘贴多个范围。所以下面的代码返回一个"下一个没有"错误。我认为**代码的第二部分导致问题

设置tempWB = Application.Workbooks.Open(vrtSelectedItem)'此OPENS参考工作簿

                ' 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.

End Sub