使用外部单元格作为标准过滤数据

使用外部单元格作为标准过滤数据

我正在尝试制作一个仪表板,其中我必须使用自定义过滤器来过滤我的数据。这是因为我有近 800 个数据点,我必须绘制所有数据点。但我对绘制所有数据点不感兴趣,而是想要一个过滤器单元。我可以在其中定义过滤条件。

例如,如果我只想要大于 1 的数据,那么我应该能够将 1 写入该单元格,它应该会自动过滤数据。同样,如果我想要 0.5 和 1 之间的数据,那么我可以将这两个数字写入两个单元格并过滤数据。而不是单击表格顶部块并手动将数字写入弹出窗口。我一直在尝试找到一种方法来做到这一点,但没有成功。一开始,我尝试使用 IF 语句,这样包含值的行就会出现,但它也没有用。

更新

因此,我已成功使用 Excel 中的 VBA 代码创建多个过滤器。但情况是这样的。我的数据是表格形式,位于工作表“数据”中。然后我还有另一张名为“仪表板”的工作表。因此,我需要两点帮助:

1) 我让它适用于 Top 5 和 Bottom 5 过滤器。但我无法让它适用于 >1 代码。我使用以下代码(我从互联网上找到的):

Sub Filter_Morethan1()

Dim lo As ListObject
Dim iCol As Long

  Set lo = ActiveSheet.ListObjects("Table3")

  'Set filter field
  iCol = lo.ListColumns("Cost Prices").Index

  'Apply filters to a column (field)
  lo.Range.AutoFilter field:=5, Criteria1:=">1", Operator:=xlFilterValues

End Sub

但当我运行代码时,它显示“运行时错误 1004:Range 类的自动过滤方法失败”。当我单击“调试”时,代码中的以下行变为黄色

lo.Range.AutoFilter field:=5, Criteria1:=">1", Operator:=xlFilterValues

2) 其次,我尝试在不同的表单中激活一些点击按钮。我希望用户能够点击这些按钮,然后数据将被过滤。当我在“相同”表单中激活这些按钮时,这些按钮可以工作,但是当我在不同的表单中制作这些按钮时,我收到错误“运行时错误9:下标超出范围”

有谁能帮忙解决这两个案例吗?

更新2

我提到的两张表是相互关联的,在一张表中,我仅插入原始数据,该数据被格式化为表格。我有近 890 行数据。表格在 A 列和 B 列中定义。这是“数据”表。而在“仪表板”表中,我绘制了所有 900 个数据点的条形图。但想法是“宏按钮”会过滤“数据”表中的数据,从而更改仪表板表中用于条形图的数据。这是因为我试图制作一个交互式仪表板,而用户不允许进入其他表。希望这有意义。

答案1

我能够解决这个问题。我发现问题如下:

  • 按钮在不同的表单中不起作用,因为我使用的是 ActiveSheet 选项,这意味着按钮仅在给定的表单中处于活动状态。同时,数据被插入到不同的表单中。因此,我简单地将代码更改为使用
    Dim ws As Worksheet
        Set ws = Worksheets(2)

这使得它能够工作。

  • 对于 不起作用的另一个问题>1,我发现选项中有错误Field:=。这是因为我正在使用表格,并且我想过滤掉表格中的第二列,因此我不得不使用Field:=2而不是5

通过执行上述操作,我能够解决我的问题。

我希望这个答案能够帮助到那些遇到同样问题的人。

相关内容