如何在列A中select与选定范围(所选范围是非连续范围)平行的范围而不循环

如果select的范围是Rng1 = C1:D2,C4:D5 ,结果范围必须是Rng2 = A1:A2,A4:A5

如果Rng1是连续的,我使用两种工作方式,但是如果Rng1是非连续的范围都不起作用:

 Sub test() Dim Rng1 As Range, Rng2 As Range Set Rng1 = Range("C1:D2,C4:D5") 'first way: Set Rng2 = Rng1.Resize(, 1).Offset(, 1 - Rng1.Column) 'second way: Set Rng2 = Range(Cells(Rng1(1).Row, 1), Cells(Rng1(Rng1.Count).Row, 1)) Rng2.Select End Sub 

所以我们可以做到这一点没有循环通过Rng1行或地区。

 Sub test() Dim Rng1 As Range, Rng2 As Range Set Rng1 = Range("C1:D2,C4:D5") Set Rng1 = Rng1.EntireRow Set Rng2 = Intersect(Rng1, Rng1.Parent.Columns(1)) End Sub