excel vba – 基于列表添加表中的列

我试图根据位置列表从B3开始往下插入列(“TableTotal”)。 该清单的大小将取决于有多less位置。

我创build图纸,插入表格,并使用重命名表格

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”创build的最后2张表格需要根据每个创build的初始表格进行“TOTAL”计算。

我有一个模板表,我想要复制并粘贴在这些表中,但我需要插入第一列,依赖于从“B3”范围使用的第一个列表。

我已经通过CountA来pipe理要插入的列的数量,并将它们放在我的“TableTotal”的正确位置,使用下面的

 Sub Insert_Columns() On Error Resume Next Columns("M").Resize(, Range("C3").Value).Insert On Error GoTo 0 End Sub 

这适当地插入正确数量的列,但他们有标题作为列1到X根据我有多less个位置

我正在寻找一种方法来直接插入具有特定标题名称的列基于B3列表。

此外,每个表列将包含一个公式,该公式将使用相同的TableName引用引用在CreateSheetsFromAList中创build的表。

试试这个子:

 Sub insertColumnsWithHeaders(headers As Range) Dim i As Integer For i = headers.End(xlDown).row To headers.End(xlUp).row Step -1 columns("M").Insert Range("N1") = Cells(i, headers.Cells(1, 1).Column) Next End Sub 

标题最多需要1列。 在列M之后插入列,并在作为parameter passing的范围中指定标题。