【问题标题】:Excel VBA - How can I create (not apply) a filter in a range?Excel VBA - 如何在范围内创建(不应用)过滤器?
【发布时间】:2015-08-26 16:32:14
【问题描述】:

我在同一张表中有多个“表格”,我有一个下拉列表(班级、学生、教师),我将其用作菜单,因此当它更改时,它会“重定向”到表格所在的单元格工作表,所以如果我选择班级,它进入单元格 A2,如果我选择学生,它进入单元格 A200,如果我选择教师,它进入单元格 A400。 由于我每张表只能创建一个过滤器,如何在已选择的表上创建一个过滤器,所以如果我选择学生,则会在 A2:P350 范围内创建一个过滤器。

这样当用户选择一个选项时,他不必手动在范围上创建过滤器,而是自动创建。

我尝试了 Hoja1.Range("A2:P350").AutoFilter,但它没有创建过滤器。

【问题讨论】:

  • “它不起作用”是什么意思?它会产生错误还是什么?
  • 对不起,我只是编辑它,没有错误它只是没有创建过滤器。
  • 嗯。第一次运行 range.autofilter 命令时,它会删除之前的自动过滤器。所以也许你需要运行两次?
  • 另外,您可能需要考虑使用tables。这样,您可以在同一张纸上拥有多个自动过滤器。它还有其他一些不错的功能。
  • 我现在正在使用表格,它似乎是唯一的解决方案....目前

标签: vba excel


【解决方案1】:

这将过滤范围的第二列并选择所有等于"abc"的值?

Hoja1.Range("A2:P350").AutoFilter Field:=2, Criteria1:="abc"

您可以在手动应用过滤器的同时录制宏以查看宏录制器的功能,然后以录制的宏为灵感创建自己的宏。

【讨论】:

  • 好答案,但是您的方法应用了过滤器,我想创建一个过滤器,这意味着避免用户选择表格的标题和点击过滤器
  • VBA 宏负责创建和应用过滤器,用户无需创建过滤器。 “我要创建过滤器”还有什么意思?
  • 它没有创建过滤器,因为没有显示箭头......“我想创建一个过滤器”的意思是,就像我在问题中指定的那样,用户不必手动创建范围上的过滤器,但它是自动创建的,这意味着用户没有在主页选项卡中单击,选择范围,然后单击过滤器,这意味着宏应该在我更改时自动显示标题上的箭头“浏览量”
  • 正如您所描述的,这正是我的代码所做的。它有什么问题?
  • 不是磨损的,不是我要找的,我想在所有列上显示过滤器图标但不应用条件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多