1
我試圖根據位置列表從B3開始向下插入列(「TableTotal」)並且向下。該列表的大小將根據有多少位置而有所不同。excel vba - 基於列表在表中添加列
創建表,插入表格,並使用
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
用「CreateSheetsFromAList2」創建的最後2片重命名錶需要具有用於基於每個初始表做一個「TOTAL」計算表創建。
我有一個模板表,我想複製並粘貼在這些工作表中,但我需要插入第一列,這些列依賴於範圍「B3」中使用的第一個列表。
我已經通過COUNTA設法要插入的列數,並把它們在我的「TableTotal」在正確的地方使用下面的
Sub Insert_Columns()
On Error Resume Next
Columns("M").Resize(, Range("C3").Value).Insert
On Error GoTo 0
End Sub
這正確插入的列權數量,但他們有標題列1到X根據我有多少個位置
我正在尋找一種方法來直接插入具有基於B3列表的特定標題名稱的列。
此外,每個表列將包含一個公式,該公式將使用相同的TableName引用引用在CreateSheetsFromAList中創建的表。