Ich versuche, Spalten in eine Tabelle ("TableTotal") basierend auf einer Liste von Standorten beginnend bei B3 und nach unten. Diese Liste variiert in Abhängigkeit von der Anzahl der Standorte.Excel VBA - Hinzufügen von Spalten in Tabelle basierend auf Liste
ich erstellen Blätter, Einfügen von Tabellen, und benennen Sie die Tabellen mit
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
Die letzten 2 Blätter mit „CreateSheetsFromAList2“ erstellt wurden, müssen Tabellen haben eine „TOTAL“ Berechnung zu tun, basierend auf jeder der ursprünglichen Tabellen erstellt.
Ich habe eine Vorlage-Tabelle, die ich kopieren und in diese Blätter einfügen möchte, aber ich muss die ersten Spalten einfügen, die von der ersten Liste aus dem Bereich "B3" abhängig sind.
Ich habe durch eine COUNTA verwaltet die Anzahl der Spalten zu erhalten, und sie in meinem „TableTotal“ an der richtigen Stelle eingefügt legen Sie die unten
Sub Insert_Columns()
On Error Resume Next
Columns("M").Resize(, Range("C3").Value).Insert
On Error GoTo 0
End Sub
mit dieser richtig die richtige Anzahl von Spalten, aber sie haben Header als Spalte 1 bis X basierend auf wie viele Standorte ich habe
Ich bin auf der Suche nach einer Möglichkeit, diese Spalten mit dem spezifischen Header-Namen basierend auf der B3-Liste direkt einzufügen.
Darüber hinaus enthält jede dieser Tabellenspalten eine Formel, die auf die Tabellen verweist, die in CreateSheetsFromAList mit demselben TableName-Verweis erstellt wurden.