伙计,
我要满足两个条件。一个:在第一列中,数字可以是1、2或2,3或3,4和两个:在最后一行中,最后一列需要为F,F。如果满足此条件,则需要从第一列中删除具有较大整数的整个行。该检查必须一次进行两行。 我似乎无法解决这个问题。你们都有一些提示吗?
谢谢!
编辑:
0级保持不变并固定。
答案 0 :(得分:0)
这将受益于数组检查,而不是在循环内部删除(使用UNION
)。无论哪种方式,这都可以根据您的条件进行
注意:我将Column A
用于lvl
,将Column B
用于Stock
,因此您需要使其适合数据。这也假设相关数据从第3行开始(即,忽略标头的第1行,并忽略lvl 0值的第2行)。
Sub try()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet2")
Dim lr As Long, i As Long
Dim v1 As Range, v2 As Range
lr = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
For i = lr To 3 Step -2
Set v1 = ws.Range("A" & i)
Set v2 = ws.Range("A" & i - 1)
If (v1 = 1 And v2 = 2) Or (v1 = 2 And v2 = 1) Or _
(v1 = 2 And v2 = 3) Or (v1 = 3 And v2 = 2) Or _
(v1 = 3 And v2 = 4) Or (v1 = 4 And v2 = 3) Then
If ws.Range("B" & i) = "F" And ws.Range("B" & i - 1) = "F" Then
If v1 > v2 Then
ws.Range("A" & v1.Row).EntireRow.Delete
Else
ws.Range("A" & v2.Row).EntireRow.Delete
End If
End If
End If
Set v1 = Nothing
Set v2 = Nothing
Next i
End Sub
这是我使用的设置,因此范围和列均基于这张照片。您将需要进行更新以适合您的电子表格。红色的项目已通过符合您条件的宏删除了