【问题标题】:Filtering a Pivot Table Automatically in Excel在 Excel 中自动筛选数据透视表
【发布时间】:2012-12-17 10:35:09
【问题描述】:

我正在为下午的学校活动建立一个数据库。我正在尝试通过控制数据透视表的表单创建搜索选项,用户可以在数据透视表中过滤班级类型和/或年龄组和/或学年。

我在 VBA 中编写了这段代码,但它不起作用。当我尝试编写代码以仅过滤上述其中一种(例如类类型)时,它可以工作,但是当我将其扩展为 3 个过滤器选项时,它不起作用。当其中一个选项中没有插入任何值时,它会失败。

search_class.Hide
ActiveSheet.PivotTables("PivotSearchClass").PivotFields("class type").ClearAllFilters

If IsNull(Range("type_search").Value) Then
    ActiveSheet.PivotTables("PivotSearchClass").PivotFields("class type").CurrentPage = "(All)"
Else: ActiveSheet.PivotTables("PivotSearchClass").PivotFields("class type").CurrentPage = Range("type_search").Value
End If

type_box = "pick a class type"

ActiveSheet.PivotTables("PivotSearchClass").PivotFields("group age").ClearAllFilters

If IsNull(Range("target_search").Value) Then
    ActiveSheet.PivotTables("PivotSearchClass").PivotFields("group age").CurrentPage = "(All)"
Else: ActiveSheet.PivotTables("PivotSearchClass").PivotFields("group age").CurrentPage = Range("target_search").Value
End If

target_box = "pick a group age"

ActiveSheet.PivotTables("PivotSearchClass").PivotFields("school year").ClearAllFilters

If IsNull(Range("year_search").Value) Then
    ActiveSheet.PivotTables("PivotSearchClass").PivotFields("school year").CurrentPage = "(All)"
Else:
ActiveSheet.PivotTables("PivotSearchClass").PivotFields("school year").CurrentPage = Range("year_search").Value
End If

year_search_box = "pick a school year"   

ActiveSheet.PivotTables("PivotSearchClass").PivotCache.Refresh  

有谁知道问题出在哪里以及如何解决?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我认为如果您将测试更改为:

    If IsEmpty(Range("type_search").Value)
    

    If Range("type_search").Value = ""
    

    IsNull 用于测试变体变量是否包含空值,对于空白或填充单元格都不会为真。

    【讨论】:

    • 很高兴听到这个消息。您应该通过单击答案旁边的复选标记来接受它以及您获得的任何其他有用的内容。
    【解决方案2】:

    我在这台计算机上没有 Excel,数据透视表是我的弱点,但我会尽力提供帮助,因为您似乎独自一人。首先确保您的脚本确实在运行 if 语句的“True”情况,然后我将编辑 CurrentPage 的值以查看您的问题是否存在(即,将“(all)”值更改为其他值)。错误在哪里,错误描述是什么?

    【讨论】:

    • 您好,非常感谢您的回答。如果 Range("type_search").Value = "" 解决了!
    猜你喜欢
    • 1970-01-01
    • 2012-05-14
    • 2012-02-20
    • 1970-01-01
    • 2021-11-30
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    相关资源
    最近更新 更多