【发布时间】:2017-07-05 00:53:42
【问题描述】:
我正在尝试让一个程序为我创建几个数据透视表(因为我必须每周/每月执行一次)但数据类型相同。
根据几个网站,我复制了一些代码并编辑了一些代码如下:
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”:
数据透视表字段名称无效。要创建数据透视表,您必须使用组织为带有标签列的列表的数据。如果要更改数据透视表字段的名称,则必须为该字段键入一个新名称。
我无法向您显示我的数据,因为它是公司信息,但它是带有列标题但没有行标题的常规数据表。我已经在其他数据上测试了这段代码,但它也不起作用。而且我已经使用手动创建的数据透视表测试了我的数据并且它们确实有效,所以这是代码的问题。
请让我知道出了什么问题。谢谢!
【问题讨论】:
-
@teylyn 原因是我们每周/每月都有一组新数据。但是,我们仍然希望使用数据透视表来获得灵活性。 (我对数据透视表不是很熟悉,但据我了解,我不能简单地替换数据,因为每周,我们的数据表可能大小不同)谢谢。
标签: excel pivot-table vba