Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 创建数据透视表:错误-数据透视表字段名无效_Excel_Vba_Pivot - Fatal编程技术网

Excel 创建数据透视表:错误-数据透视表字段名无效

Excel 创建数据透视表:错误-数据透视表字段名无效,excel,vba,pivot,Excel,Vba,Pivot,我正试图通过VBA创建一个基于设置范围的透视表 我已经定义了我的变量 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 Dim PField As PivotField 'Declare Variables Set PSheet =

我正试图通过VBA创建一个基于设置范围的透视表

我已经定义了我的变量

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
Dim PField As PivotField

'Declare Variables
Set PSheet = Worksheets("TS")
Set DSheet = Worksheets("Data Entry")

'Define Data Range
LastRow = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
LastCol = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Set PRange = DSheet.Cells(1, 1).Resize(LastRow, LastCol)

PSheet.PivotTables("Timesheet").TableRange2.Clear

'Define Pivot Cache
Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRange)

'Insert Blank Pivot Table
Set PTable = PCache.CreatePivotTable(TableDestination:=PSheet.Cells(5, 1), TableName:="Timesheet")
我在插入透视表代码时出错

运行时错误1004:
数据透视表字段名无效。若要创建数据透视表,必须使用以列表形式组织并带有标记的列的数据。如果要更改可透视字段的名称,则必须为该字段键入新名称


我的数据范围在数据表中,范围为A1:P50。范围将来不会更改。

最后一行-插入空白透视表数据表的第1行是否包含列标题?是的,第1行中确实有标题表是否已经存在<代码>PSheet.PivotTables(“时间表”).TableRange2.Clear它现在不存在,但会存在,并且需要在PSheet中插入新表之前将其删除。在第一次运行代码时,我确实会删除此行,以确保不会出现错误。最后一行-插入空白透视表数据表的第1行是否包含列标题?是的,第1行中确实有标题该表是否已存在<代码>PSheet.PivotTables(“时间表”).TableRange2.Clear它现在不存在,但会存在,并且需要在PSheet中插入新表之前将其删除。在第一次运行代码时,我确实删除了这一行,以确保它不会给我一个错误。