2

ユーザー選択から複数の範囲を取得することは可能ですか? たとえば、ユーザーが「A1:B2」を選択し、Ctrl キーを押しながら「E1:G2」も選択した場合、最初の範囲を 1 つの範囲変数に、2 番目の範囲を別の範囲に取得できますか?

4

2 に答える 2

5

Areasコレクションはあなたが探しているものだと思います。選択された 2 つの非連続範囲のサンプルを次に示します。

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
于 2013-05-29T15:17:32.260 に答える
1

はい、可能です。これはそれを行う 1 つの方法です。

Sub Selected__Ranges()
    Range("A1:B2,E1:G2").Select
    Dim rng
    Set rng = Selection
    Debug.Print rng.Address
End Sub
于 2013-05-29T15:15:43.110 に答える