excel - 使用可变标准 VBA 进行自动过滤

标签 excel vba autofilter

我正在尝试使用变量将自动过滤器放在工作表上,但它不起作用。

  Dim Criteria As Object
  i = 1
  Set Criteria = ActiveSheet.Cells(i, 1)
  MsgBox (Criteria.Value) ' this returns BC01.03

但是,当我尝试过滤“Criteria.Value”时没有返回任何内容。
Selection.AutoFilter
ActiveSheet.Range("$A$1:$BM$204").AutoFilter Field:=2, Criteria1:=" & Criteria.Value & "

请指教。

最佳答案

去掉 Criteria1 参数周围的引号:

ActiveSheet.Range("$A$1:$BM$204").AutoFilter Field:=2, Criteria1:=Criteria.Value

另外,只是一个问题,为什么要对 Range 对象使用后期绑定(bind)?我确实对需要另一个库/引用的对象使用后期绑定(bind),但因为 Range是 Excel 对象库的一部分,我会使用早期绑定(bind)。我会Dim Criteria as Range但这只是我的偏好。

关于excel - 使用可变标准 VBA 进行自动过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18106258/

相关文章:

VBA - 使用 SpecialCells.Copy 后 PasteSpecial 不起作用

excel - 过滤范围复制粘贴值并创建新工作表

Excel 工作表引用一般和超链接功能

vba - 使用 VBA 保存包含列中数据的 csv

Python Webscrape 通过 Scrapy 或 Excel 查询搜索?

vba - End Sub 上需要错误 424 对象

范围类的Excel VBA选择方法失败

excel - 刷新 Excel 表格过滤器和使用 VBA 排序时出错

PHP导出带图片的excel

excel - 如何根据文件名模式使用最新的文件?