您可以在源表格中添加一个列X,标题为“Condx for DELETE”,并用表示DELETE条件的公式填充此列作为布尔值 - 与您的情况类似:= NOT(OR(A2 = 8000 ,A2 = 9000))(假设值8000,9000等出现在列A中)
然后,您循环通过源表并删除列X为TRUE的所有记录。 Asuming该
- 源已被内VBA定义为范围对象(MyRange)
- 第一行是头行
- 没有空单元格在第一列标题和列表
- 的端部之间条件是在第3列
发现一个放可能看起来像这样
Sub MySub()
Dim MyRange As Range, Idx As Integer, MyCondx As Integer
Set MyRange = ActiveSheet.[A1] ' represent source data as a range
Idx = 2 ' asuming one header row
MyCondx = 3 ' asuming condition is in 3rd column
Do While MyRange(Idx, 1) <> ""
If MyRange(Idx, MyCondx) Then
MyRange(Idx, 3).EntireRow.Delete
Else
Idx = Idx + 1
End If
Loop
End Sub
这样您就可以完全透明,不需要硬编码,而且您非常灵活,不仅可以更改2个值的集合,还可以指定任何条件为业务提供服务。
希望有帮助 - 祝你好运
你的意思是,而不是寻找8000或9000,它寻找一些你在单元格中输入的值? – TerrorAustralis 2010-08-17 04:29:08