我被要求根据一个工作表中的信息构建报告。有超过30个报告要构建。我已将用于计算的单元格的链接设置为准备好(数据可以从报表使用的另一个工作表中过滤)作为模板,只需将模板复制到新创建的工作表并更改一个单元格即可生成新报表表示每个报告的具体标识符
这里的问题是:
我仍然需要复制和粘贴30次并更改报告的标识符。无论如何构建基于VBA或其他程序的程序来自动化利用已构建模板的过程而不重新编码每个单元格值的分配?非常感谢你!
答案 0 :(得分:0)
你在这里。创建两个名为“Template”和“ControlSheet”的工作表。在“ControlSheet”上创建两列:第一列包含新工作表的名称,第二列包含参数值。然后添加这个宏:
Public Const TemplateSheetName = "Template"
Public Const ControlSheetName = "ControlSheet"
Public Const ControlSheetFirstCell = "A2"
Public Const TargetCell = "B5"
Sub ParseReport()
Dim i As Integer
Dim NextSheetName As String
Dim NextSheetValue As Variant
i = 0
Do While True
NextSheetName = Sheets(ControlSheetName).Range(ControlSheetFirstCell).Offset(i, 0).Cells(1, 1).Value
If NextSheetName = "" Then
Exit Do
End If
NextSheetValue = Sheets(ControlSheetName).Range(ControlSheetFirstCell).Offset(i, 0).Cells(1, 2).Value
Sheets(TemplateSheetName).Copy After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = NextSheetName
ActiveSheet.Range(TargetCell) = NextSheetValue
i = i + 1
Loop
End Sub
ControlSheetFirstCell - 控制表中第一个包含要创建的工作表名称的单元格。值位于右侧的列中。 TargetCell - 新创建的工作表上的单元格,您需要在其中编写报表参数