2

我正在尝试使用 Excel VBA 复制多个范围。我知道为了选择多个范围,使用类似于以下的语法:

Range("A1:B4000, F1:F4000").Select

这在选择适当的范围时效果很好。但是,以下内容:

Range("A1:B4000, F1:F4000").Copy

...仅复制 A1:B4000 范围。这是我面临的第一个问题。

其次,我想将数据动态复制到最底行,不一定是#4000行。如果选择单个范围,语法如下:

Range("A1", Range("B1").End(xlDown)).Copy

上面的代码成功地将 A1 中的所有内容复制到 B 列的底部。我在网上找不到任何解释如何为多项选择执行此操作的材料。

我实际上想做的是复制 A1:B(bottom) 和 F1:F(bottom),但上述两个问题阻止了我。我认为这是一个语法问题..?

4

2 回答 2

3

使用“联合”方法。

Dim range1 as Range, range2 as Range, multipleRangeAs Range    
Set range1 = Sheets("Sheet1").Range("A1:B4000")    
Set range2 = Sheets("Sheet1").Range("F1:F4000")    
Set multipleRange= Union(range1, range2)

然后你可以像往常一样乱用 mutipleRange 。

于 2012-09-17T18:58:33.033 回答
0

@Scott Holtzman 在评论中提供了解决方案:

我只想调整以下内容,因为 OP 要求提供动态范围名称,因此 Set range1 = Range("A1:B" & Range("B" & Rows.Count).End(xlUp).Row) 以获得真正的最后B列中的单元格。对F列也执行相同的操作

于 2012-09-25T11:11:00.557 回答