简体   繁体   English

使用变量Criteria VBA的自动过滤器

[英]Autofilter using variable Criteria VBA

I am trying to put an autofilter on a worksheet using a variable, but it is not working. 我试图使用变量将自动过滤器放在工作表上,但它无法正常工作。

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

However, when I try to filter "Criteria.Value" is not returning anything. 但是,当我尝试过滤“Criteria.Value”时没有返回任何内容。

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

Please advice. 请指教。

Get rid of the quote marks around your Criteria1 argument: 摆脱Criteria1参数周围的引号:

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

Also, just a question why you would use late binding on a Range object? 另外,只是为什么要在Range对象上使用后期绑定? I do use late binding for objects that would require another library/reference, but since Range is part of the Excel object library, I would use early binding. 我确实对需要另一个库/引用的对象使用后期绑定,但由于Range是Excel对象库的一部分,我会使用早期绑定。 I would Dim Criteria as Range but that's just my preference. 我会将Dim Criteria as Range但这只是我的偏好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM