运行时错误“1004”数据透视表错误

我正在寻找与以下错误的帮助。

我有一些VBA代码打开一个工作簿,并在包含数据透视表的工作表中复制。

代码然后select数据透视表,按date过滤,并复制一些字段。

此function在第一次使用时完美运行。 但是,当这个报告在一天中被使用一次以上时,会出现以下错误:

在这里输入图像说明

问题是分配数据透视表名称,因为VBA只是使用系统默认值。 代码如下:

Sheets("Sheet1").Select ActiveWorkbook.ShowPivotTableFieldList = False ActiveSheet.PivotTables("PivotTable1").PivotFields("Date ").AutoSort _ xlDescending, "Date " 

有没有一种替代方式dynamicselect数据透视表而不pipe名字?

或者,是否有代码在执行结束时清除历史logging,以便每次运行报告时都将支持1?

任何帮助将不胜感激。

提前致谢

如果你知道将只有一个数据透视表(因为它似乎你已经打算在你的文章中传达,但我可能误解了这一点),最好使用索引比名称,因为名称将是不同的,如果新的数据透视表被创build,而另一个已经存在。 将您的来电改为:

 If Sheets("Sheet1").PivotTables.Count <> 0 Then Sheets("Sheet1").PivotTables(1).PivotFields("Date ").AutoSort xlDescending, "Date " End If 

注意我也删除了“select”用法,因为由于各种原因这被认为是不好的做法。