我已经录制了一个宏来在 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 张纸:/所以努力就在那里,但正如爱因斯坦对精神错乱的定义所说:“精神错乱是在尝试同样的事情并期待不同的结果。”目前,我已经没有新东西可以尝试了。
最佳答案
添加一个新工作表,然后使用该工作表添加新的数据透视表,如下所示:
Sub AddPivotOnNewSheet()
Dim wsNew As Worksheet
Set wsNew = Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Main Budget Sheet!R2C1:R88C10", Version:=xlPivotTableVersion14). _
CreatePivotTable TableDestination:=wsNew.Name & "!R1C1", TableName:= _
"PivotTableName", DefaultVersion:=xlPivotTableVersion14
With ActiveSheet.PivotTables("PivotTableName").PivotFields("Category")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTableName").AddDataField ActiveSheet.PivotTables( _
"PivotTableName").PivotFields("Labor"), "Sum of Labor", xlSum
ActiveSheet.PivotTables("PivotTableName").AddDataField ActiveSheet.PivotTables( _
"PivotTableName").PivotFields("Material"), "Sum of Material", xlSum
wsNew.Shapes.AddChart.Select
End Sub
关于excel - 新工作表上的 VBA 数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20414244/