VBA创build数据透视表错误1004

我想要一个程序为我创build几个数据透视表(因为我必须每周/每月这样做),但同一types的数据。

基于几个网站,我复制了一些代码,并编辑了以下代码:

Private Sub CommandButton1_Click() 'Declaration 'Creates new worksheet Dim sht As Worksheet Dim pvtCache As PivotCache Dim pvt As PivotTable Dim StartPvt As String Dim SrcData As String Dim DataRange As Range 'Create a new worksheet Set sht = Sheets.Add sht.Name = "EUPS Report" 'Determine the data range you want to pivot Set DataRange = Application.InputBox("Please Select the Data (Please select by pressing any cell in the table then pressing ctrl+a)", Default:=Selection.Address, Type:=8) SrcData = sht.Name & "!" & DataRange.Address(ReferenceStyle:=xlR1C1) 'Where do you want Pivot Table to start? ' StartPvt = "'" & sht.Name & "!" & sht.Range("A15").Address(ReferenceStyle:=xlR1C1) & "'" 'Create Pivot Cache from Source Data Set pvtCache = ActiveWorkbook.PivotCaches.Create( _ SourceType:=xlDatabase, _ SourceData:=SrcData) 'Create Pivot table from Pivot Cache Set pvt = pvtCache.CreatePivotTable( _ TableDestination:=Worksheets("EUPS Report").Range("A15")) ' TableName:="PivotTable1") End Sub 

但是,我遇到了这个错误:

运行时错误“1004”:

数据透视表字段名称无效。 要创build数据透视表报表,您必须使用组织为具有标签列的列表的数据。 如果要更改数据透视表字段的名称,则必须为该字段键入一个新名称。

我不能显示我的数据,因为它是公司信息,但它是一个带有列标题的常规数据表,但没有行标题。 我已经在其他数据上testing了这个代码,但它也不起作用。 我已经用手动创build的数据透视表testing了我的数据,他们确实有效,所以这是代码的问题。

请让我知道什么是错的。 谢谢!

使用Excel表对象来存储数据,然后可以通过名称引用表作为数据透视表的来源。 该表将随着数据的增长和收缩而变化,您只需在数据更改时刷新数据透视表。

您可以手动将数据复制并粘贴到表中,也可以使用Power Query从几乎任何数据源获取数据。 Power Query是Microsoft为Excel 2010和2013提供的一个免费插件,它作为Get&Transform构build到Excel 2016中。

这里的想法是,刷新数据比每周从头开始创build数据透视表更简单,更高效。 这实际上破坏了数据透视表的目的。 工作更聪明,而不是更难。