Excel自动报告模板

时间:2013-12-19 07:30:58

标签: c# excel vba excel-vba

我被要求根据一个工作表中的信息构建报告。有超过30个报告要构建。我已将用于计算的单元格的链接设置为准备好(数据可以从报表使用的另一个工作表中过滤)作为模板,只需将模板复制到新创建的工作表并更改一个单元格即可生成新报表表示每个报告的具体标识符 这里的问题是:
我仍然需要复制和粘贴30次并更改报告的标识符。无论如何构建基于VBA或其他程序的程序来自动化利用已构建模板的过程而不重新编码每个单元格值的分配?非常感谢你!

1 个答案:

答案 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 - 新创建的工作表上的单元格,您需要在其中编写报表参数