【发布时间】:2021-03-16 01:29:43
【问题描述】:
亲爱的 我正在处理一个数据透视表,顺便说一下,我是 PT 的新手,我尝试录制宏并尝试对其进行编辑,但它失败了,所以我需要你的帮助。
所需的结果如下图所示,位于包含源数据的同一工作簿的另一张工作表中
源数据如下图所示,来自同一工作簿中的另一张工作表,顺便说一下,它只是导致上述结果数据的整个数据的一部分。
Sub Generate_Ter()
'Declare Variables
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
Dim LastRow As Long
Dim LastCol As Long
Set PSheet = Worksheets("New")
Set DSheet = Worksheets("Data")
enter code here
Dim rg2 As Range
With DSheet
Set rg2 = .Range("A1", .Range("A" & Rows.Count).End(xlUp))
rg2.Offset(0, 6).Value = 1
rg2.Resize(rg2.Rows.Count, 7).Name = "PRange"
'Define Pivot Cache
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"PRange", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:=PSheet.Range("P1"), TableName:="ptTmp2", DefaultVersion _
:=xlPivotTableVersion14
With DSheet.PivotTables("ptTmp2").PivotFields("SKU Name")
.Orientation = xlRowField
.Position = 2
.Subtotals = Array _
(False, False, False, False, False, False, False, False, False, False, False, False)
End With
With DSheet.PivotTables("ptTmp2").PivotFields("SKU Code")
.Orientation = xlRowField
.Position = 3
.Subtotals = Array _
(False, False, False, False, False, False, False, False, False, False, False, False)
End With
With DSheet.PivotTables("ptTmp2")
.AddDataField DSheet.PivotTables("ptTmp2"). _
PivotFields("1"), "BSS Count", xlCount
.RowAxisLayout xlTabularRow
.RepeatAllLabels xlRepeatLabels
.ColumnGrand = False
.ShowTableStyleRowHeaders = False
.TableRange1.Copy
End With
PSheet.Range("A9").PasteSpecial Paste:=xlPasteValues
PSheet.Range("A9").PasteSpecial Paste:=xlPasteFormats
End With
End Sub
【问题讨论】:
-
错误信息是什么,在哪一行代码?
-
运行时错误'1004' 数据透视字段名称无效,要创建数据透视报表,您必须使用组织为带有标签列的列表的数据。如果要更改数据透视表字段的名称,则必须为该字段键入一个新名称..(错误行包含:ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData "PRange", Version:=xlPivotTableVersion14 ).CreatePivotTable _ TableDestination:=PSheet.Range("P1"), TableName:="ptTmp2", DefaultVersion _ :=xlPivotTableVersion14)
-
"PRange"看起来不像SourceData的有效参数。
标签: excel vba pivot pivot-table