2016-06-24 9 views
0
Private Sub workbook_open() 

Select the range of cells 

Dim r1, r2, r3, r4, r5, multirange 

Set r1 = Sheets("SE_SQ").Range("Ad1:ak50") 

Set r2 = Sheets("Main").Range("Ad1:ak50") 

Set r3 = Sheets("Feeler").Range("Ad1:ak50") 

Set r4 = Sheets("Egg Crates").Range("Ad1:ak50") 

Set r5 = Sheets("other").Range("Ad1:ak50") 

Set multirange = Union(r1, r2, r3, r4, r5) 

この最後の設定範囲では、実行時エラー1004が発生します。このステートメントで何が問題になっていますか?multirange unionステートメントが機能しません

+0

、これはで使用されているプログラミング言語/環境についての詳細情報を含めるように_edited_た場合は、この質問は良いだろう、私はこれがある_think_ Excelの質問ですが、わかりません。 – chwarr

答えて

0

ExcelのUnion()は、異なるシートの範囲では機能しません。すべての範囲を1つのシートにコピーするか、コレクション、配列、辞書などの別のVBAコンテナを使用することを検討してください。パスの下にあるすべてのそのような容器や各iteratelyプリント値までの値の範囲:。

Public Sub RangeTest() 
    Dim r1, r2, r3, r4, r5 
    Dim d1 As New Collection, d2(1 To 250) As Variant, d3 As Object 
    Dim i As Variant, n As Variant, num As Integer 

    Set r1 = Sheets("SE_SQ").Range("Ad1:ak50") 
    Set r2 = Sheets("Main").Range("Ad1:ak50") 
    Set r3 = Sheets("Feeler").Range("Ad1:ak50") 
    Set r4 = Sheets("Egg Crates").Range("Ad1:ak50") 
    Set r5 = Sheets("other").Range("Ad1:ak50") 

    ' COLLECTION ' 
    For Each i In Array(r1, r2, r3, r4, r5) 
     For Each n In i 
      d1.Add n 
     Next n 
    Next i   
    For Each i In d1: Debug.Print i: Next i 

    ' ARRAY ' 
    num = 1 
    For Each i In Array(r1, r2, r3, r4, r5) 
     For Each n In i 
      d2(num) = n 
      num = num + 1 
     Next n 
    Next i   
    For Each i In d2: Debug.Print i: Next i 

    ' DICTIONARY ' 
    Dim key As Variant, val As Variant 
    Set d3 = CreateObject("Scripting.Dictionary") 
    num = 1 
    For Each i In Array(r1, r2, r3, r4, r5) 
     For Each n In i 
      key = num: val = n: d3.Add key, val 
      num = num + 1 
     Next n 
    Next i   
    For Each i In d3: Debug.Print d3(i): Next i 

End Sub 
関連する問題