C# Excel自动报告模板
我被要求在一张工作表中根据信息生成报告。有30多个报告要生成。我已将计算准备单元的链接设置为模板(数据可以从另一张表中过滤出来供报告使用),只需将模板复制到新创建的表中,并更改一个指示每个报告特定标识符的单元,即可生成新报告。C# Excel自动报告模板,c#,vba,excel,C#,Vba,Excel,我被要求在一张工作表中根据信息生成报告。有30多个报告要生成。我已将计算准备单元的链接设置为模板(数据可以从另一张表中过滤出来供报告使用),只需将模板复制到新创建的表中,并更改一个指示每个报告特定标识符的单元,即可生成新报告。 这里的问题是: 我仍然需要复制和粘贴30次,并更改报告的标识符。是否有任何方法可以基于VBA或其他工具构建一个程序,以自动化利用已构建模板的过程,而无需重新编码每个单元格值的赋值?多谢各位 给你。创建两张名为“Template”和“ControlSheet”的工作表。在“
这里的问题是:
我仍然需要复制和粘贴30次,并更改报告的标识符。是否有任何方法可以基于VBA或其他工具构建一个程序,以自动化利用已构建模板的过程,而无需重新编码每个单元格值的赋值?多谢各位 给你。创建两张名为“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-新创建的工作表上的单元格,您需要在其中写入报告参数很抱歉我的答复太晚。非常感谢你!不客气!如果您能将我的回答作为解决方案,我将不胜感激。非常感谢。