【发布时间】:2016-12-05 09:53:20
【问题描述】:
我正在尝试根据从 B3 开始并向下的位置列表将列插入表(“TableTotal”)。该列表的大小将根据位置的数量而有所不同。
我创建工作表、插入表格并使用
重命名表格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 中创建的表。
【问题讨论】:
标签: excel vba multiple-columns