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