从用户select中获取多个范围(Excel VBA)

是否有可能从用户select中获得多个范围。 例如,如果用户select“A1:B2”,然后按住Ctrl并select“E1:G2”,那么我可以得到第一个范围1范围variables和第二个到另一个?

我认为Areas集合是你在找什么。 以下是所选的两个非连续范围的示例:

 Sub testing() 'testing area Range("A1:A10,E1:E10").Select Dim rngFirst As Range Dim rngSecond As Range Set rngFirst = Selection.Areas(1) rngFirst.Select 'if there is no other separate range within selection to avoid errors 'which could solved possible problems this way On Error Resume Next Set rngSecond = Selection.Areas(2) rngSecond.Select End Sub 

是的,它是可能的,这是一个办法:

 Sub Selected__Ranges() Range("A1:B2,E1:G2").Select Dim rng Set rng = Selection Debug.Print rng.Address End Sub