自动筛选特定标准使用VBA
我正在尝试使用VBA自动筛选项目。
问题是每个列表项都在它们之间有斜杠。 例如(ABC / EFG / HIJ)。 我想拉出只包含string“ABC”的列表项,无论是单独列出还是与其他string项一起列出。 例如,如果一个列表项目(ABC / EFG)和另一个列表项目说(ABC),我希望这两个项目,因为这两个项目都包含ABCstring本身。 这是我迄今为止:
Sub FilterByABC() 'Change this to the relevant worksheet Set ws = ThisWorkbook.Sheets("ABC") Worksheets("ABC").Range("A1").AutoFilter , Field:=1, Criteria1:="ABC" Operator = xlFilterValues Range("A1").Select Columns("A").Copy Sheets("ABCData").Select Columns("A").Select Worksheets("ABCData").Paste End Sub
添加第二个通配符filter和Operator:=xlAnd
参数。
Option Explicit Sub FilterByABC() Dim rngDest As Range With Worksheets("ABCData") Set rngDest = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0) End With With Worksheets("ABC") If .AutoFilterMode Then .AutoFilterMode = False With .Cells(1, 1).CurrentRegion .AutoFilter Field:=1, Criteria1:="ABC*", _ Operator:=xlAnd, Criteria2:="<>ABC EC*" With .Resize(.Rows.Count - 1, 1).Offset(1, 0) If CBool(Application.Subtotal(103, .Cells)) Then 'there are visible, filtered cells in column A; copy then to ABCData .SpecialCells(xlCellTypeVisible).Copy Destination:=rngDest End If End With End With If .AutoFilterMode Then .AutoFilterMode = False End With End Sub
你应该添加两个标准来实现这一点:
Sub FilterByABC() 'Change this to the relevant worksheet Set ws = ThisWorkbook.Sheets("ABC") Worksheets("ABC").Range("A1").AutoFilter , Field:=1, _ Criteria1:="ABC*", Operator:= xlAnd, Criteria2:="<>ABD EC" Operator = xlFilterValues Range("A1").Select Columns("A").Copy Sheets("ABCData").Select Columns("A").Select Worksheets("ABCData").Paste End Sub
另请阅读为什么你应该避免使用select? 。