【发布时间】:2017-10-12 03:38:38
【问题描述】:
考虑到我对 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
【问题讨论】:
-
我目前使用 Excel 2016
标签: vba excel pivot-table