因此,列1由各种名称组成,如果该列中特定单元格中的名称不是名称的子集,则我想删除整行。我尝试使用嵌套的If结合For来遍历行,但事实证明,按升序删除行不起作用。 现在,我希望for循环从最终值开始到初始值,然后像这样在结尾处使用“ Step -1”
For Each a In Range("F2:F244") Step-1
但是我得到
编译错误:语句结束
我在做什么错?还是有其他删除行的方法?
编辑:在@Skin的建议下,以下是更新的代码。但是现在错误显示为
运行时错误'1004':无法设置范围类的Delete属性
Sub deleteaccount()
Dim x As Range, l As Long
Set x = Range("E2:E244")
For l = x.SpecialCells(xlCellTypeLastCell).Row To x.Cells(1, 1).Row Step -1
If Left(Cells(l, 5), 4) = "DARL" Then
Cells(l, 6).Value = "darling"
ElseIf Left(Cells(l, 5), 4) = "GIRI" Then
Cells(l, 6).Value = "girias"
ElseIf Left(Cells(l, 5), 4) = "S.C." Then
Cells(l, 6).Value = "sc shah"
ElseIf Left(Cells(l, 5), 4) = "SHAR" Then
Cells(l, 6).Value = "sharpatronics"
ElseIf Left(Cells(l, 5), 4) = "VASA" Then
Cells(l, 6).Value = "vasanth"
ElseIf Left(Cells(l, 5), 4) = "VIVE" Then
Cells(l, 6).Value = "viveks"
Else
Cells(l, 6).EntireRow.Delete = True
End If
Next l
End Sub
答案 0 :(得分:0)
尝试一下...
Dim objRange As Range, lngRow As Long
Set objRange = Range("F2:F244")
With objRange
For lngRow = .Cells(.Rows.Count, 1).Row To .Cells(1, 1).Row Step -1
If .Cells(lngRow, 1) = "THE_VALUE" Then .Rows(lngRow).Delete
Next
End With