我一直在寻找答案,事实上我使用的代码来自这个网站。我有一个VBA用于更改PivotTable
过滤器,方法是将值输入到单独的单元格中,如下所示:
Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Sheets("Dashboard").Range("Lane1")) Is Nothing Then
Sheets("Dashboard").PivotTables("PivotTable1").PivotFields("TLEG"). _
ClearAllFilters
Sheets("Dashboard").PivotTables("PivotTable1").PivotFields("TLEG").CurrentPage _
= Sheets("Dashboard").Range("Lane1").Value
End If
End SUb
代码工作正常。它允许我输入值并相应地过滤,但是当我删除单元格中的值时,它不会过滤“all”。相反,我遇到的问题是当我删除单元格中的值时抛出运行时错误“1004”。我命中了它,它给了我答案。但是错误不断出现。
当VBA出现时,我几乎是一个新生儿,所以可能是因为我错过了一些明显的东西。
答案 0 :(得分:2)
Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng=Me.Range("Lane1")
If Not Application.Intersect(Target, rng) Is Nothing Then
With Sheets("Dashboard").PivotTables("PivotTable1").PivotFields("TLEG")
.ClearAllFilters
If Len(rng.Value)>0 Then .CurrentPage = rng.Value
End With
End If
End SUb