所以我得到的这段代码基本上是弗兰肯斯坦(Frankenstein)编写的具有不同代码段的怪兽,因为我对自己的编码不是很高。这是一个excel表格,可导入类似xml的代码的文本文件,我希望它向我展示重要的内容。在这种情况下,我基本上希望自动过滤器删除不包含PA1 *,PA2 *和PA4 *的所有行。
之前,我只想保留PA2 *和PA4 *,并将它们作为两个不同的条件,但是据我的理解和经验,当您需要两个以上的条件时,并不是那么容易。
运行此代码将删除所有行,除了具有最后三个条件的行(在本例中为PA1 *)。我已经尝试过解决这个问题,但是今年夏天的高温使大脑缓慢的工作变得更加缓慢,赞赏我能得到的所有帮助!
我现在正在使用的代码段:
Dim rng As Range
Dim lastRow As Long
Set ws = ActiveWorkbook.ActiveSheet
lastRow = ws.Range("A" & ws.rows.Count).End(xlUp).Row
Set rng = ws.Range("A1:A200" & lastRow)
With rng
.AutoFilter Field:=1, Criteria1:=Array("<>PA4*", "<>PA2*", "<>PA1*")
.Offset(0, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
谢谢!
答案 0 :(得分:1)
Set rng = ws.Range("A1:A200" & lastRow)
不会返回您期望的结果。在后面的行上写MsgBox(rng.Address)
,以查看引用的地址。
然后将其更改为此:
Set rng = ws.Range("A1:A" & lastRow)