繁体   English   中英

VBA代码仅成功运行一次

[英]VBA code runs successfully only once

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

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"))

如果这样就行了

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM