我认为这应该是一个简单的考虑我的VB知识很少:)我已经录制了一个宏来为当前工作表上的范围创建一个数据透视表。当然,这给我的是为特定工作表创建数据透视表的代码。我正在尝试调整代码以获取活动工作表的名称,以便我可以在不同工作表中使用此宏。我试图搜索并找到如何检索名称,然后将该名称提供给将要创建数据透视表的代码。
我在代码的ActiveWorkbook.PivotCaches.Create部分遇到了障碍。我收到"运行时错误' 1004':应用程序定义的错误或对象定义的错误"消息。
非常感谢任何帮助!
Sub Macro1()
Dim sht As String
sht = ActiveSheet.Name
Columns("A:K").Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
Worksheets(sht).Range("!R1C1:R1048576C11"), Version:=6).CreatePivotTable TableDestination:= _
Worksheets(sht).Range("!R1C14"), TableName:="PivotTable3", DefaultVersion:=6
ActiveSheet.Select
Cells(1, 14).Select
With ActiveSheet.PivotTables("PivotTable3").PivotFields("Department")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable3").PivotFields( _
"Originating Master Name")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("PivotTable3").PivotFields("Net")
.Orientation = xlRowField
.Position = 3
End With
With ActiveSheet.PivotTables("PivotTable3").PivotFields("Month")
.Orientation = xlRowField
.Position = 4
End With
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("Net"), "Count of Net", xlCount
With ActiveSheet.PivotTables("PivotTable3").PivotFields("Month")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable3").PivotFields("Count of Net")
.Caption = "Sum of Net"
.Function = xlSum
End With
End Sub
答案 0 :(得分:1)
更改此
Worksheets(sht).Range("!R1C1:R1048576C11")
到此
ActiveWorkbook.Sheets(sht).Range("A1:K1048576")
这个
Worksheets(sht).Range("!R1C14")
到此
ActiveWorkbook.Sheets(sht).Range("N1")