【问题标题】:VBA filter from a range that have been set来自已设置范围的 VBA 过滤器
【发布时间】:2020-11-24 05:19:00
【问题描述】:

我正在尝试使用 Autofilter 命令。我希望范围是我设置如下的表格

Dim myTable As Range
Set myTable = ActiveSheet.Range("A1").CurrentRegion

所以我想当我想过滤时,我应该做类似的事情

ActiveSheet.ListObjects("myTable").AutoFilter Field:=10, Criteria1:="AUGUST"

但似乎有一个错误提示“下标超出范围”

也许我对范围部分有误。因为当我使用 eg:range("A1:K500") 时,它工作正常。但我真的更喜欢它在 CurrentRegion 的范围内,因为这个数据可能每个月都在不同的范围内,所以每次手动更改 VBA 中的范围会做太多工作。 谢谢

【问题讨论】:

  • 活动工作表中是否有一个名为“myTable”的表格?

标签: vba filter range autofilter


【解决方案1】:

尝试替换

ActiveSheet.ListObjects("myTable").AutoFilter Field:=10, Criteria1:="AUGUST"

myTable.AutoFilter Field:=10, Criteria1:="AUGUST"

如果有一个名为“myTable”的表,您可以使用上面的代码,不需要任何初步范围集。如果只有一张表,可以使用:

ActiveSheet.ListObjects(1).AutoFilter Field:=10, Criteria1:="AUGUST"

【讨论】:

  • @Asifa.K:很高兴我能帮上忙!但是你没有说哪个变种有效...除此之外,我们在这里当有人回答我们的问题时,勾选代码左侧的复选框,以使其接受答案。这样,搜索类似问题的其他人就会知道该代码有效...
  • 我明白了。抱歉,对此非常陌生:D 第一个变体对我有用。因为我的 excel 中只有一张表
猜你喜欢
  • 1970-01-01
  • 2013-04-19
  • 2018-02-28
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
  • 2012-11-07
相关资源
最近更新 更多