vba用“Cells()”表示不同工作簿中的范围
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vba用“Cells()”表示不同工作簿中的范围相关的知识,希望对你有一定的参考价值。
我想引用另一本书中的范围,这是从这个作品中定义的:
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错误(应用程序定义或对象定义的错误)。
任何想法如何解决这个问题?
谢谢,Gijs。
答案
您可以先尝试参考工作表:
Dim Ws As Worksheet
Set Ws = Workbooks(filename).Sheets(sheetname)
然后参考范围:
With Ws
Set rLookRange = Range(.Cells(startrow, startcol), .Cells(rows, cols))
End With
注意点:你在特定的工作表中引用单元格,所以在你的语句中粘贴.Cells之前的点。
另一答案
您无需激活工作簿/工作表。使用“Set”关键字定义范围。
语法如下:
dim rLookRange as Range
set rLookRange = Workbooks(filename).Sheets(sheetname).Range(Cells(startrow, startcol), Cells(rows, cols))
取决于你想做什么(?) 为了比较范围,我通常定义数组并比较这些数组中的值。
以上是关于vba用“Cells()”表示不同工作簿中的范围的主要内容,如果未能解决你的问题,请参考以下文章
Excel VBA - 循环遍历多个文件夹中的文件,复制范围,粘贴到此工作簿中
excel中怎么样按某一列的数据自动分成几张表格(要在不同的工作簿中vba)