【问题标题】:VBA code runs successfully only onceVBA 代码只成功运行一次
【发布时间】:2016-10-01 08:03:48
【问题描述】:

我正在尝试运行以下代码,它运行良好并且只完成了一次工作。然后它开始抛出运行时错误 1004:应用程序或对象定义错误。 上下文:我有 10 个工作表中的大约 15 个数据透视表,每周更新一次。我每周都会更改源数据,并希望更新数据透视表。

Sub UpdateReports()

Dim wb As Workbook
Dim PT As PivotTable, PTCache As PivotCache, newPT As PivotTable

Set wb = Application.Workbooks("Open items VIM Analytics September 16th, 2016.xlsx")
Set PTCache = wb.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=wb.Worksheets("Vim open items 09.09.2016").Range("a:au"))
Set PT = wb.Worksheets("Per Location").PivotTables("PivotTable3")
Set newPT = wb.Worksheets("Per Location").PivotTables.Add(PivotCache:=PTCache, TableDestination:=wb.Worksheets("Per Location").Range("a200"))

PT.CacheIndex = newPT.CacheIndex

End Sub

我收到了错误

Set newPT = wb.Worksheets("Per Location").PivotTables.Add(PivotCache:=PTCache, TableDestination:=wb.Worksheets("Per Location").Range("a200"))

【问题讨论】:

  • 你在哪一行得到错误?
  • 我已经更新了我的帖子

标签: excel caching pivot-table vba


【解决方案1】:

如果这落在了线上

Set newPT = wb.Worksheets("Per Location").PivotTables.Add(PivotCache:=PTCache, TableDestination:=wb.Worksheets("Per Location").Range("a200"))

它无法创建数据透视表,因为它已经具有相同的名称。我建议在添加旧表之前尝试明确指定名称或删除。

您仍然可以尝试将旧表与新缓存链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多