繁体   English   中英

Autofilter using (Range as Criteria) 适用于字符串,但不适用于数字(即使在数字转换为字符串后)

[英]Autofilter using (Range as Criteria) works with strings , But not works with numbers (even after number converted to string)

基本上我想使用 vba Autofilter using (Range as Criteria)。
如果条件范围是明确的字符串(字符),则以下代码有效。
我已经使用 excel 接口将标准范围的格式更改为文本然后我运行我的代码,但是自动过滤的结果什么都没有。
我需要知道我的代码有什么问题以及如何解决它。
提前感谢您的所有帮助。

Sub Filter_rng_criteria()
 
   Dim ws As Worksheet
   Set ws = ActiveSheet
 
   Dim rng As Range
   Set rng = ws.Range("A2:R4605")
 
   If Not ws.AutoFilterMode Then rng.AutoFilter                       'Set AutoFilter if not already set
 
   Dim rng_criteria As Range
   Set rng_criteria = ws.Range("T2", ws.Range("T2").End(xlDown))      'Rnage from T2 till Down
 
   Dim arr
   arr = Application.WorksheetFunction.Transpose(rng_criteria.Value)  'Range to Criteria
 
   rng.AutoFilter Field:=1, Criteria1:=arr, Operator:=xlFilterValues
 
End Sub

似乎criteria需要明确的字符串值:-/

如果你添加

   Dim i As Long
   For i = LBound(arr) To UBound(arr)
        arr(i) = CStr(arr(i))
   Next

transpose -row 它工作之后

暂无
暂无

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

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