我已经录制了一个宏来在 VBA 中创建数据透视表和后续图表。它就像一种魅力,只是完全不是我需要的那样。问题是我希望能够运行代码并让它在尚不存在的工作表上创建一个表。基本上我将通过菜单上的按钮运行它,它应该在新页面上创建表格和图表。无需进一步告别:
Sub Macro13()
' Macro13 Macro
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Main Budget Sheet!R2C1:R88C10", Version:=xlPivotTableVersion14). _
CreatePivotTable TableDestination:="Sheet21!R1C1", TableName:= _
"PivotTable12", DefaultVersion:=xlPivotTableVersion14
Sheets("Sheet21").Select
Cells(1, 1).Select
With ActiveSheet.PivotTables("PivotTable12").PivotFields("Category")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable12").AddDataField ActiveSheet.PivotTables( _
"PivotTable12").PivotFields("Labor"), "Sum of Labor", xlSum
ActiveSheet.PivotTables("PivotTable12").AddDataField ActiveSheet.PivotTables( _
"PivotTable12").PivotFields("Material"), "Sum of Material", xlSum
ActiveSheet.Shapes.AddChart.Select
End Sub
如果我用简单的英语表达,我会认为这意味着...选择主预算表中的数据,然后在表 21 上创建一个名为数据透视表 12 的数据透视表...然后选择表 21 并选择数据透视表的字段表...最后,从该数据添加图表...
我认为我需要做的只是找出这些东西的通用名称(除了源数据之外)。
另外,目前它只会运行一次,并且仅当该工作表已经存在时,大概是因为它无法创建一个名为相同内容的数据透视表,所以如果它可以重复地在不同的工作表上创建相同的表,我会很高兴。
正如你所看到的,我已经尝试了足够多的内容,以至于我创建了 21 张纸:/所以努力是存在的,但正如爱因斯坦对精神错乱的定义所示,“精神错乱就是尝试同样的事情却期待不同的结果。”目前,我已经没有什么新东西可以尝试了。