vba在不同工作簿中用“引用”表示范围;单元格();
我想引用另一本书中的一个范围,从 这项工作:vba在不同工作簿中用“引用”表示范围;单元格();,vba,range,Vba,Range,我想引用另一本书中的一个范围,从 这项工作: Workbooks(macrofilename).Sheets(IDsheetname).Activate lookRange = Range(Cells(startrow, startcol), Cells(rows, cols)) colno = Application.Match(myName, lookRange, 0) 但我不想激活其他工作表,因此我尝试将工作簿和工作表添加到范围定义中: lookRange = Workbooks(fil
Workbooks(macrofilename).Sheets(IDsheetname).Activate
lookRange = Range(Cells(startrow, startcol), Cells(rows, cols))
colno = Application.Match(myName, lookRange, 0)
但我不想激活其他工作表,因此我尝试将工作簿和工作表添加到范围定义中:
lookRange = Workbooks(filename).Sheets(sheetname).Range(Cells(startrow, startcol), Sheets(Cells(rows, cols))
遗憾的是,这会导致1004错误(应用程序定义的错误或对象定义的错误)
有什么办法解决这个问题吗
thanx,Gijs.您不需要激活工作簿/工作表。 使用“Set”关键字定义范围 语法类似于:
dim rLookRange as Range
set rLookRange = Workbooks(filename).Sheets(sheetname).Range(Cells(startrow, startcol), Cells(rows, cols))
取决于你想做什么(?)为了比较范围,我通常定义数组并比较这些数组中的值 您可以尝试先参考工作表:
Dim Ws As Worksheet
Set Ws = Workbooks(filename).Sheets(sheetname)
然后参考范围:
With Ws
Set rLookRange = Range(.Cells(startrow, startcol), .Cells(rows, cols))
End With
注意点:您指的是特定工作表中的单元格,因此请在语句中的.Cells之前粘贴点。调用
单元格
将指的是活动工作表,而不是工作簿(文件名)。工作表(sheetname)
最好是带有工作簿(文件名)。工作表(sheetname)。。。设置rLookRange=.Range(.Cells(…),.Cells(…)。。。以