运行时错误“1004”使用macros来更改透视字段..但只有一些值

我正在使用代码根据单元格的值(单元格包含文本,不是对另一个单元格的引用)更改一个透视图的一个透视图字段。 最奇怪的是,它几乎适用于所有的价值观,但不是全部。

代码如下:

Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Sheets("Sheet2").Range("D1")) Is Nothing Then Sheets("Sheet2").PivotTables("PivotTable1").PivotFields("Field1"). _ ClearAllFilters Sheets("Sheet2").PivotTables("PivotTable1").PivotFields("Field1").CurrentPage _ = Sheets("Sheet2").Range("D1").Value End If End Sub 

debugging说这个问题是下面一行

 Sheets("Sheet2").PivotTables("PivotTable1").PivotFields("Field1").CurrentPage _= Sheets("Sheet2").Range("D1").Value 

和错误说:“运行时错误”1004“应用程序定义或对象定义的错误”。

有人可以帮帮我吗? 非常感谢你!

ps包含用于更改数据透视表字段的文本的单元格的值由另一个接收来自数据透视表的值的macros更改,因此该值已存在,并且格式对于所有值都是相同的,所以我无法确定出了什么问题…

不完全是一个专家,但经过一些研究,我build议你试试这个代码:

 Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As PivotTable If Not Intersect(Target(1, 1), Range("D1")) Is Nothing Then Set pt = Me.PivotTables(1) With pt .RefreshTable .PivotFields("Field1").CurrentPage = Range("D1").Text End With End If End Sub 

这可能会减慢这个过程!