Excel VBA基于多个条件删除行

Excel VBA基于多个条件删除行,vba,excel,excel-2016,Vba,Excel,Excel 2016,我有以下代码 Dim CO_priority As String Dim Col_ticketage As String CO_priority = Range("Q4").Value Col_ticketage = Range("Q5").Value Sheets("Inc").Select LR = Range("CO_priority" & Rows.Count).End(xlUp).Row For i = LR To 2 Step -1 If (Range("CO_p

我有以下代码

Dim CO_priority As String
Dim Col_ticketage As String

CO_priority = Range("Q4").Value
Col_ticketage = Range("Q5").Value

Sheets("Inc").Select
LR = Range("CO_priority" & Rows.Count).End(xlUp).Row
For i = LR To 2 Step -1
    If (Range("CO_priority" & i).Value = "1" And Range("Col_ticketage" & i).Value < "1") Then Rows(i).delete
Next I
如果变量CO_priority值给出的列中的值为1,而另一个变量Col_ticketage值给出的列中的值小于1,我希望此代码删除这些行

因此,假设A列中的单元格中的数字为1,B列中的数字小于1,则该行应删除,但在任何其他情况下,该行应保留

上面的代码出于某种原因删除了每一行


你能告诉我这段代码出了什么问题吗?

一种更快的方法是使用DelRng合并通过2-条件的所有行,然后立即删除整个范围

代码


您的变量周围有引号。。。它们不会被视为变量。在Q4.value和Q5范围内,存储在这两个变量中的是什么?你对RangeCO_priority有什么期望?我也要纠正一下?好吧,我的错,对不起,也许再来一杯咖啡可以解决我的问题。解决方案是你给我的,你的变量周围有引号。。。它们不会被视为变量。谢谢,对不起
Option Explicit           

Sub DelRows()

Dim CO_priority As String
Dim Col_ticketage As String
Dim LR As Long, i As Long
Dim DelRng As Range

CO_priority = Range("Q4").Value
Col_ticketage = Range("Q5").Value

With Sheets("Inc")
    LR = .Range(CO_priority & .Rows.Count).End(xlUp).Row
    For i = LR To 2 Step -1
        If (.Range(CO_priority & i).Value = 1 And .Range(Col_ticketage & i).Value < 1) Then
            If Not DelRng Is Nothing Then
                Set DelRng = Application.Union(DelRng, .Rows(i))
            Else
                Set DelRng = .Rows(i)
            End If
        End If
    Next i
End With
' make sure DelRng is not nothing >> delete entire rows at one-shot
If Not DelRng Is Nothing Then DelRng.Delete

End Sub