我对excel vba有一个奇怪的错误 . 我试图在数据透视表中为日期值设置可见性为false . 我的代码在虚拟表上工作正常,但它在我的真实表上返回错误(1004) .
Sub MultiItemPivotFilter2()
Dim PI As PivotItem
Sheets("Pivot_stocks_1").PivotTables("Pivot_Stocks_1").RefreshTable
For Each PI In Sheets("Pivot_stocks_1").PivotTables("Pivot_Stocks_1").PivotFields("date2").PivotItems
If DateValue(PI.Name) < DateValue(Sheets("Pivot_stocks_1").Range("J13").Value) Then
PI.Visible = False
Else
PI.Visible = True
End If
Next PI
End Sub
错误发生在行 PI.Visible = False
(无法设置PivotItem类的Visible属性)
2 回答
也许这会对你有所帮助:
unable to set the visible property of the pivotitem class
您应该始终执行select true循环,然后执行select false循环 . 原因是Excel一次只执行一个并且不允许您将所有内容隐藏在数据透视表中,它会出错(或者你有什么)所以:
希望有道理!
Edit
即使它没有解决您的问题,您也应该在隐藏pivotItems时始终实现此逻辑