使用VBA复制多个范围

时间:2012-09-17 18:48:06

标签: excel-vba copy vba excel

我正在尝试使用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(底部)和F1:F(底部),但上述两个问题阻止了我。我认为这是一个语法问题..?

2 个答案:

答案 0 :(得分:2)

使用“联盟”方法。

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。

答案 1 :(得分:0)

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

  

我会调整以下内容,因为OP要求动态   范围名称,设定范围1 =范围(“A1:B”和范围(“B”&范围)。   Rows.Count).End(xlUp).Row)获取B列中真正的最后一个单元格   对于列F也是如此