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