0

我想参考另一本书中的一个范围,这是从这个作品中定义的:

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 错误(应用程序定义的或对象定义的错误)。

任何想法如何解决这个问题?

谢谢,吉斯。

4

2 回答 2

2

您可以先尝试参考工作表:

Dim Ws As Worksheet
Set Ws =  Workbooks(filename).Sheets(sheetname)

然后参考范围:

With Ws
    Set rLookRange = Range(.Cells(startrow, startcol), .Cells(rows, cols))
End With

注意点:您指的是特定工作表中的单元格,因此请在语句中的 .Cells 之前粘贴点。

于 2015-05-08T09:54:07.100 回答
0

您无需激活工作簿/工作表。使用“Set”关键字定义范围。

语法类似于:

dim rLookRange as Range


set rLookRange = Workbooks(filename).Sheets(sheetname).Range(Cells(startrow, startcol), Cells(rows, cols))

取决于你想要做什么(?)
为了比较范围,我通常定义数组并比较这些数组中的值。

于 2012-12-04T14:28:13.780 回答