1

我环顾四周寻找答案,实际上我使用的代码来自这个站点。我有PivotTable通过将值输入到单独的单元格中来更改过滤器的 VBA,如下所示:

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

代码工作正常。它允许我输入值并相应地过滤,但是当我删除单元格中的值时,它不会过滤“全部”。相反,我遇到的问题是当我删除单元格中的值时会引发运行时错误“1004”。我打完了,它给了我答案。但是,错误不断弹出。

当谈到 VBA 时,我几乎是一个新生儿,所以我可能错过了一些明显的东西。

4

1 回答 1

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
于 2013-09-12T22:08:56.930 回答