Есть две проблемы с вашим кодом.
Первая проблема в этой строке:
Set test1 = Sheets("Sheet1")l.Cells(test1row,1)
Должно быть:
Set test1 = Sheets("Sheet1").Cells(test1row, 1)
И другая проблема здесь:
If test1 <> "actest" Or test1 <> "dctest" Then
Это должно быть так:
If test1 <> "actest" And test1 <> "dctest" Then
Ваше If
утверждение всегда будет верным. Использование оператора And
даст вам истинное значение, только когда значение ячейки не «actest» и это не «dctest», что, по-видимому, является желаемым поведением.
Вот полный рабочий код:
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