运行时错误' 1004'数据透视表错误

时间:2016-07-28 08:16:44

标签: excel vba excel-vba

我正在寻求您的协助,并出现以下错误。

我有一些VBA代码可以在包含数据透视表的工作表中打开工作簿和副本。

然后代码选择数据透视表,按日期过滤,并复制一些字段。

此功能在首次使用时非常有效。但是,当此报告在一天内多次使用时,会遇到以下错误:

enter image description here

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

 Sheets("Sheet1").Select

 ActiveWorkbook.ShowPivotTableFieldList = False

 ActiveSheet.PivotTables("PivotTable1").PivotFields("Date ").AutoSort _
    xlDescending, "Date "

是否有另一种方法可以动态选择数据透视表而不管名称?

或者,是否有代码在执行结束时清除历史记录,以便每次运行报表时它都是1号轴?

非常感谢任何帮助。

提前致谢

1 个答案:

答案 0 :(得分:2)

如果你知道只有一个数据透视表(因为你的帖子似乎已经打算传达,虽然我可能误解了这个),但最好使用索引而不是名称,因为名称将是如果新的数据透视表是在另一个存在时创建的,则会有所不同。将您的电话改为:

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

注意我也删除了&#34;选择&#34;用法,因为这被认为是variety of reasons的不良做法。