【问题标题】:Changing a PivotTable filter by entering a value into a cell通过在单元格中输入值来更改数据透视表过滤器
【发布时间】:2013-09-17 11:04:12
【问题描述】:

我四处寻找答案,实际上我使用的代码来自这个站点。我有用于更改 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 时,我几乎是一个新生儿,所以我可能错过了一些明显的东西。

【问题讨论】:

    标签: vba excel excel-2007 pivot-table


    【解决方案1】:
    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
    

    【讨论】:

      猜你喜欢
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 2017-08-28
      • 1970-01-01
      • 2016-12-17
      • 2021-05-08
      相关资源
      最近更新 更多