Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I am trying to copy multiple ranges using Excel VBA. I understand that in order to select multiple ranges, syntax similar to that below is used:

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

This works fine in selecting the appropriate range. However, the following:

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

...only copies the A1:B4000 range. This is the first problem I am facing.

Secondly, I would like to dynamically copy the data to the bottom row, which is not necessarily row #4000. If selecting a single range, the syntax is as follows:

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

The above code successfully copies everything from A1 to the bottom of the B column. I can't find any material on the net explaining how to do this for multiple selections.

What I'm essentially trying to do is copy A1:B(bottom) and F1:F(bottom), but the above two issues are stopping me. I assume this is a syntax issue..?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
1.4k views
Welcome To Ask or Share your Answers For Others

1 Answer

Use the "Union" method.

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)

Then you can mess around with mutipleRange as per normal.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...