【发布时间】:2018-10-27 05:43:18
【问题描述】:
我目前正在创建一个 VBA 脚本,我在其中提取原始数据列表并过滤掉 Apple、Banana 和 Oranges 的值。如果不是上面提到的值,我会删除所有其他行。
例如,我有苹果、香蕉、橙子、葡萄、柑橘、鳄梨、椰子、柠檬、西瓜。
最后我只想保留苹果、香蕉和橙子。如果它有任何其他水果,我希望删除整行信息。
Sub RMWO_Clean()
Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long
Set ws = ActiveWorkbook.Sheets("Sheet1")
lastRow = ws.Range("Q" & ws.Rows.Count).End(xlUp).Row
Set rng = ws.Range("Q1:Q" & lastRow)
Columns("AF:AF").Select
Selection.TextToColumns Destination:=Range("AA1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
With rng
.AutoFilter Field:=1,Criteria1:="<>*Apple*", Operator:=xlAnd, Criteria2:="<>*Banana*"
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
ws.AutoFilterMode = False
End Sub
我知道你不能使用
Criteria3:=xx
我也试过了
Criteria1:=Array("<>Apple", "<>Banana", "<>Orange")
但这似乎只留下橙色。
你能告诉我我做错了什么吗?
【问题讨论】: