範囲を他の範囲で分割しますか? VBA

範囲を他の範囲で分割しますか? VBA

範囲B1:BF1を取得したとします

そしてもう一つは、可変範囲(つまりE1:W1)

上と下のを分割したいので、結果は次のようになります

B1:D1、X1:BF1

このように分割された範囲を 1 つの変数に保存することは可能ですか?

答え1

何らかの逆の操作をする必要があると思いますIntersect。残念ながら、私はそのような操作を知りません。

ここでは、範囲をチェックして重複する部分を確認する小さなコードがあります。重複しない場合は、新しい範囲が作成されます。

Sub Test()

Dim Rng1 As Range, Rng2 As Range, Rng3 As Range, Cl As Range

With ThisWorkbook.Sheets("Sheet1")
    Set Rng1 = .Range("B1:BF1")
    Set Rng2 = .Range("E1:W1")
    For Each Cl In Rng1
        If Intersect(Rng2, Cl) Is Nothing Then
            If Not Rng3 Is Nothing Then
                Set Rng3 = Union(Rng3, Cl)
            Else
                Set Rng3 = Cl
            End If
        End If
    Next Cl

Debug.Print Rng3.Address
End With

End Sub

ここに画像の説明を入力してください

これで始められるといいですね。

関連情報