我有一个问题,希望你能提供帮助。我一直在使用下面的代码,它只是从给定的 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/