2013-05-29 71 views
1

是否可以从用户选择中获取多个范围?例如,如果用户选择“A1:B2”,然后按住ctrl并选择“E1:G2”,那么我可以得到第一个范围为1范围变量,第二个到另一个?从用户选择中获取多个范围(Excel VBA)

+1

这是可能的。在这里,你需要给我们一个你已经尝试过的例子,以便我们的答案尽可能有帮助。请告诉我们相关的代码,并告诉我们你还想做什么。 –

+0

@DougGlancy我通常会说同样的事情......但如果想想这个问题,初学者可能很难弄清楚这一点。 – 2013-05-29 15:17:23

+0

我唯一能想到的就是要求用户在输入框中输入范围,但我想只用选择来完成。最终目标是乘以选择中的两个矩阵。 – user2419750

回答

4

我觉得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 
+0

谢谢! – user2419750

1

是其可能的,这是做这件事:

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