2017-12-05 8 views
0

変数または配列値で名前が定義された一連の新しいListObjectを作成しようとしています。変数または配列で名前が定義されたListObject

TblNameArray = Array("Table1", "Table2", "Table3", "Table4",) 

ActiveSheet.ListObjects.Add(xlSrcRange, Range(Cells(R1, C1), Cells(R2, C2)), , xlYes).Name = TblNameArray(w) 

正しい名前の2つの新しいテーブルが取得され、エラーなしで停止します。 私は、変数を使用することを好むが、私はその場所で変数を使用する方法を考え出していない。

ご協力いただければ幸いです!

+0

TblNameArrayを経由するループが必要で、各繰り返しでR1、C1、R2、C2を変更する必要があります。 – PatricK

+0

人々があなたの問題を再現できるように、あなたの質問に十分なコードを貼り付けてください。現時点では何が起こっているかを再現する方法はありません。 – YowE3K

答えて

0

あなたの質問から、正確に何をしようとしているのかを見るのは難しいです。しかし、以下のコードは機能し、おそらくあなたの道を見つけるのに役立ちます。

Private Sub InsertTables() 

    Dim TblNameArray As Variant 
    Dim TblRangeArray As Variant 
    Dim w As Integer 

    TblNameArray = Array("Table1", "Table2", "Table3", "Table4") 
    TblRangeArray = Array("A2:G8", "A11:G15", "A21:G25", "A31:G35") 

    With Activesheet 
     For w = 0 To UBound(TblNameArray) 
      .ListObjects.Add(SourceType:=xlSrcRange, _ 
          Source:=Range(TblRangeArray(w)), _ 
          XlListObjectHasHeaders:=xlYes).Name = TblNameArray(w) 
     Next w 
    End With 
End Sub 

Private Sub ListTables() 

    Dim Tbl As ListObject 

    For Each Tbl In ActiveSheet.ListObjects 
     Debug.Print Tbl.Name 
    Next Tbl 
End Sub 
+0

ありがとう! - このコードは、私がやっていることのためにうまくいきました。私はListObjects [Source]を初めて使っています。最も感謝したいと思うなら、あなたは[ソース]を使うことの良い説明を私に指摘することができます。 – gford

+0

MSDNは、VBAに関する最も権威のある情報源であり、しばしば最高の情報源です。例としてこのリンクを試してみてください。興味のあるオブジェクトの名前(この例では "VBA ListObject")を検索すると、他の説明につながる場合があります。 https://msdn.microsoft.com/en-us/vba/excel-vba/articles/listobjects-add-method-excel – Variatus

関連する問題