場所のリストに基づいてテーブル(「TableTotal」)に列を挿入しようとしています。そのリストは、その場所の数に応じてサイズが変化します。excel vba - リストに基づいてテーブルに列を追加する
私はテーブルを挿入し、シートを作成し、「CreateSheetsFromAList2」で作成した最後の2枚は、初期テーブルの各々に基づいて、「TOTAL」の計算を行うためのテーブルを持っている必要があります
Sub RunAllMacros()
CreateSheetsFromAList
CopyTable
CreateSheetsFromAList2
End Sub
Sub CreateSheetsFromAList()
Dim MyCell As Range, MyRange As Range
Set MyRange = Sheets("Summary").Range("B3")
Set MyRange = Range(MyRange, MyRange.End(xlDown))
For Each MyCell In MyRange
Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet
Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet
Next MyCell
End Sub
Sub CopyTable()
Dim WS_Count As Integer
Dim i As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
Dim Source As Range
Set Source = ThisWorkbook.Worksheets(2).Range("TableTemp[#All]")
' Begin the loop.
For i = 3 To WS_Count
ThisWorkbook.Worksheets(i).Select ' just select the sheet
Source.Copy
ActiveSheet.Paste
ActiveSheet.ListObjects(1).Name = "Table" & ActiveSheet.Name
Next i
End Sub
Sub CreateSheetsFromAList2()
Dim MyCell As Range, MyRange As Range
Set MyRange = Sheets("Summary").Range("M1")
Set MyRange = Range(MyRange, MyRange.End(xlDown))
For Each MyCell In MyRange
Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet
Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet
Next MyCell
End Sub
を使用してテーブルの名前を変更作成した。
私はそれらのシートにコピーして貼り付けたいテンプレートテーブルがありますが、範囲 "B3"から使用される最初のリストに依存する最初の列を挿入する必要があります。
私はこれを正しく列の右の数を挿入し、以下の
Sub Insert_Columns()
On Error Resume Next
Columns("M").Resize(, Range("C3").Value).Insert
On Error GoTo 0
End Sub
を使用して挿入する列の数を取得し、私の「TableTotal」における適切な場所にそれらを置くためにCOUNTAを介して管理されているが、彼らは私が持っている場所の数に基づいて列1からXのようなヘッダーを持っています
私はB3リストに基づいて特定のヘッダー名でこれらの列を挿入する方法を探しています。
さらに、これらの各テーブル列には、同じTableName参照を使用してCreateSheetsFromAListで作成されたテーブルを参照する数式が含まれます。