Vba 执行某些检查后删除1行时出错

Vba 执行某些检查后删除1行时出错,vba,excel,Vba,Excel,我在尝试使用以下代码删除整行时遇到问题: Sub Macro1() Dim test1row As Long, test1 As Range, firstrowtodelete As Long test1row = 1 Do Set test1 = Sheets("Sheet1")l.Cells(test1row,1) If test1 <> "actest" Or test1 <> "dctest" The

我在尝试使用以下代码删除整行时遇到问题:

Sub Macro1()
    Dim test1row As Long, test1 As Range, firstrowtodelete As Long

    test1row = 1

    Do 
        Set test1 = Sheets("Sheet1")l.Cells(test1row,1)

        If test1 <> "actest" Or test1 <> "dctest" Then
            firstrowtodelete = test1row
            Rows(test1row).Select
            Selection.Delete Shift:=xlUp
            Exit Do
        End If

        test1row = test1row + 1
    Loop
End Sub
Sub宏1()
变暗test1变长,test1变长,firstrowtolete变长
test1row=1
做
设置test1=板材(“板材1”)l.单元(test1row,1)
如果test1“actest”或test1“dctest”,则
firstrowtodelete=test1row
行(test1row)。选择
选择。删除移位:=xlUp
退出Do
如果结束
test1row=test1row+1
环
端接头

错误在
行(test1row)中。请选择
。即使行是“actest”或“dctest”,它也会删除该行。如果你知道为什么要和我分享!谢谢!:)

如果您的
测试有缺陷。这永远是真的。

您的代码有两个问题

第一个问题在这一行:

Set test1 = Sheets("Sheet1")l.Cells(test1row,1)
应该是:

Set test1 = Sheets("Sheet1").Cells(test1row, 1)
另一个问题是:

If test1 <> "actest" Or test1 <> "dctest" Then

嗨,你对我能做什么有什么建议吗?嗨,我想我找到了一种使用“Else”的方法。谢谢你的反馈@user1204868:有关更多详细信息,请参阅我的答案。嗨,我有一个问题。。如果直流测试不在附近怎么办。。那意味着考试不起作用。。正确的?但是我仍然想删除行..user1204868:这是一种使用循环的错误方法。如果条件不满足怎么办?当test1row达到65536(excel2003)或1048576(excel2007/2010)时,您将收到一个错误:)您是否希望使用For循环?此外,如果要删除多行,此方法也不正确。i、 e删除所有符合上述条件的行。您好,谢谢您的建议。。现在我只需要删除1行。。
If test1 <> "actest" And test1 <> "dctest" Then
Sub Macro1()
    Dim test1row As Long, test1 As Range, firstrowtodelete As Long

    test1row = 1

    Do
        Set test1 = Sheets("Sheet1").Cells(test1row, 1)

        If test1 <> "actest" And test1 <> "dctest" Then
            firstrowtodelete = test1row
            Rows(test1row).Select
            Selection.Delete Shift:=xlUp
            Exit Do
        End If

        test1row = test1row + 1
    Loop
End Sub