excel - 通过匹配范围中的字符串来过滤数据

标签 excel vba

我有一个问题,希望你能提供帮助。我一直在使用下面的代码,它只是从给定的 s.Range("C11:C2008") 中过滤单个字符串。
当我添加第二个字符串时它停止工作textb_deger = "Define Problem" & "Keep"它停止工作。
然后我添加了一个包含多个字符串的范围,例如 textb_deger = Sheet2.Range("A20:A40")它再次停止工作。
我一直在尝试按范围添加一些字符串,即 (Sheet2.Range("A20:A40"))当我运行代码时,应该过滤那些在给定范围内可用的字符串。
对你的帮助表示感谢。

Sub datcode()
    Dim s As Worksheet, textb_deger As r
    Set s = Sheet7
    textb_deger = "Define Problem"
    s.AutoFilterMode = False
    s.Range("C11:C2008").AutoFilter
    s.Range("C11:C2008").AutoFilter field:=1, Criteria1:="=*" & textb_deger & "*"
End Sub

最佳答案

如果要过滤多个值,请使用数组:

Range("$A$1").AutoFilter Field:=1, Criteria1:=Array("string A", "string B", "etc etc"),
_Operator:= xlFilterValues
您还可以从单元格值构造一个数组,例如:
Sub CellsToArray()

Dim x As Integer
Dim myArray(2) As Variant

For x = 0 To 2
    myArray(x) = Cells(x + 1, 1).Value ' row x + 1, column 1
Next x

Range("$A$1").AutoFilter Field:=1, Criteria1:=Array(myArray), Operator:=xlFilterValues
    
End Sub
有很多方法可以与上面的 sub 相同,所有方法的讨论都超出了这个问题的范围,但是你会在 SO 和其他地方找到很多例子。

关于excel - 通过匹配范围中的字符串来过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66385694/

相关文章:

excel - 对于同一组值,如何从 Excel 的不同列中仅提取一个值?

excel - VBA 中的 LoadXML 未将字符串解析为可用的 DOMDocument60

vba - 简单的 Excel VBA 搜索和查找功能给出#VALUE!错误

excel - 避免从已声明和设置的 WS 中选择范围时出现运行时错误

vba - 从另一个表单重新查询子表单?

Excel 连接

php - 如何使用 PHP 和 MYSQL 格式化 CSV 文件

java - 在swing中上传Excel文件

sql - 数据透视表并获取多个参数的聚合

mysql - Maya 和数据库