VBA设置=另一个工作簿上的工作表

我为这个疯了。 我试图过滤工作表“细节老化(2)”的第一列,但filter值随时间而变化,我要求将来不要修改macros。

我想使用范围从不同的工作簿中的工作表中的filter值,但我不能参考该工作簿中的工作表。 我得到“下标超出范围”。

下面是我使用的一段代码。 当范围的工作表在同一工作簿上时,工作得很好。

Dim vCrit As Variant Dim wsO As Worksheet Dim wsL As Worksheet Dim rngCrit As Range Dim rngOrders As Range Set wsO = Worksheets("Detail Aging (2)") Set wsL = Worksheets("C:\Users\lm733600\Desktop\Fabrizio\[Collectible Blank.xlsm]Collectors") Set rngOrders = wsO.Range("$A$1").CurrentRegion Set rngCrit = wsL.Range("ColRange") 

任何build议将不胜感激!

使用工作簿对象

 Dim vCrit As Variant Dim wsO As Worksheet Dim wsL As Worksheet Dim rngCrit As Range Dim rngOrders As Range Set wsO = Worksheets("Detail Aging (2)") Dim wb As Workbook Set wb = Workbooks.Open(Filename:="C:\Users\lm733600\Desktop\Fabrizio\Collectible Blank.xlsm", ReadOnly:=True) set wsL = wb.Sheets("Sheet1") Set rngOrders = wsO.Range("$A$1").CurrentRegion Set rngCrit = wsL.Range("ColRange")