【问题标题】:VBA Creating Pivot Table error 1004VBA 创建数据透视表错误 1004
【发布时间】: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


【解决方案1】:

使用 Excel 表格对象存储数据,然后您可以按名称引用表格作为数据透视表的来源。表格会随着数据的变化而增长和缩小,您只需在数据发生变化时刷新数据透视表即可。

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

这里的想法是,只刷新数据比每周都从头开始构建数据透视表更容易、更有效。这确实违背了数据透视表的目的。更聪明地工作,而不是更努力地工作。

【讨论】:

  • 哦,可以用一张表作为参考吗? Coolio,我会做一些快速研究并尝试一下。感谢您了解我的需要和回答,而不仅仅是千篇一律的答案。一旦我尝试过,我会告诉你的。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-02
  • 2018-03-29
  • 1970-01-01
相关资源
最近更新 更多