我正在
运行时错误'91':对象变量或未设置块变量
当我已使用set
关键字时。我读了old post,其中set
用于指定对象的引用。它究竟意味着什么?
另请阅读POST A& POST B但没有多大帮助。
Dim strPath2 As String
Dim wbkWorkbook1 As Workbook
Dim wbkWorkbook2 As Workbook
Dim wbkWorksheet1 As Worksheet
Dim wbkworksheet2 As Worksheet
Dim rng As Range
Dim copyArr As Range
Dim lastcol As Integer
'define paths and filenames
strPath = "C:\Users\Account\Desktop\test.csv"
'open files
Set wbkWorkbook1 = ThisWorkbook
Set wbkWorkbook2 = Workbooks.Open(strPath)
Set wbkWorksheet1 = wbkWorkbook1.Worksheets("paste")
Set wbkworksheet2 = wbkWorkbook2.Worksheets("copy")
Dim i As Long
'Get all columns
With wbkworksheet2
lastcol = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With
Set copyArr(i) = wbkworksheet2.Cells(1, lastcol) ' Error
答案 0 :(得分:0)
Set
为变量分配对象引用。
wbworksheet2.Cells(1,lastcol)
返回一个对象Range
,而不是一个数组。
此外,根据您的工作表名称,我猜您可能要复制并粘贴值,因此您可以使用类似
的内容替换最后一行 'clear any thing on clipboard to maximize available memory
Application.CutCopyMode = False
'copy the range from source book
wbkworksheet2.Cells(1, lastcol).Copy
'paste the data on the target book
wbkworksheet1.Range("A1").PasteSpecial