Excel VBA:如何创build一个filter的例外自动filter?
我是新来的VBA和工作,我必须在两个特定的值(4400000000和5600000000)之间筛选数据的项目。 这对我来说很棘手,就是5500000000的一些人背后有字母,即5500000000 CST。 如何编写我的代码,使其包含这些数字(如果有字母在后面)。 如果这太模糊了,我怎么写我的代码,所以它包含CST的? 这是我的代码到目前为止:
Sub macro5() Worksheets("info1").Range("A1").AutoFilter _ Field:=7, _ Criteria1:=">=" & 4400000000#, Operator:=xlFilterValues, Criteria2:="<5600000000, Operator:=xlFilterValues" End Sub
循环访问并创build值的字典进行过滤,然后使用键作为criteria1与xlfiltervalues。
Option Explicit Sub macro5() Dim d As Long, dict As Object Dim i As Double, mn As Double, mx As Double Set dict = CreateObject("scripting.dictionary") mn = 4400000000# mx = 5600000000# With Worksheets("info1") If .AutoFilterMode Then .AutoFilterMode = False For d = 2 To .Cells(.Rows.Count, "G").End(xlUp).Row If IsNumeric(Left(.Cells(d, "G").Value2, 1)) Then i = CDbl(Split(.Cells(d, "G").Value2 & Chr(32), Chr(32))(0)) If i >= mn And i < mx Then dict.Item(CStr(.Cells(d, "G").Value2)) = .Cells(d, "G").Value2 End If End If Next d .Range("A1").AutoFilter Field:=7, Criteria1:=dict.keys, Operator:=xlFilterValues End With End Sub