Autofilter使用变量条件VBA [英] Autofilter using variable Criteria VBA

查看:810
本文介绍了Autofilter使用变量条件VBA的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  Dim Dim As As As As As As As As As As As As As As As As As As As As As As As As As As As As As As As As对象
i = 1
设置条件= ActiveSheet.Cells(i,1)
MsgBox(Criteria.Value)'返回BC01.03
/ pre>

但是,当我尝试过滤Criteria.Value不返回任何东西。

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

请咨询。

解决方案

摆脱您的Criteria1参数周围的引号:


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


另外,只是一个问题,为什么你会在Range对象上使用后期绑定?对于需要另一个库/引用的对象,我使用后期绑定,但是由于 Range 是Excel对象库的一部分,我将使用早期绑定。我将 Dim Criteria as Range ,但这只是我的偏好。


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.

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:

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? 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. I would Dim Criteria as Range but that's just my preference.

这篇关于Autofilter使用变量条件VBA的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆