【发布时间】:2017-04-24 03:02:08
【问题描述】:
我希望从多个工作表中定义多个动态范围。我收到错误 1004“应用程序或对象定义错误”。我的代码适用于工作表处于活动状态的任何范围,并且我能够通过激活每个工作表然后定义我的动态范围来使其工作。但是,如果我的电子表格变得很大,这真的会减慢我的程序速度。
请注意以下几点:
- .CurrentRegion 将不起作用,因为它将包含许多不必要的行和列。由于生产区域不同,该报告将包括重复列的区域。
是否有更好的方法来定义我的范围以防止必须激活每张工作表?下面是我正在使用的一些代码的示例。
Set Sony = ThisWorkbook.Worksheets("Report")
Set Prod = ThisWorkbook.Worksheets("Prod Report")
Prod.Activate
Set rng1 = Prod.Range(Range("C3"), Range("C3").End(xlDown).Offset(-1, 0))
Set rng2 = Prod.Range(Cells(1, 1), Cells(1, 52))
Sony.Activate
Set rng3 = Sony.Range(Range("B4"), Range("B4").End(xlDown).Offset(-1, 0).End(xlToRight).Offset(0, -1))
【问题讨论】: