我有sheet1,列“ B”上的每个其他单元格都有以下字母“ LLC”。我的vba脚本应清除所有“ LLC”并水平删除整个ROW。
我已经使用的代码:
Sub deleteRowswithSelectedText()
For Each CELL In Selection
If CELL.Value(i, 2) = "LLC" Then
Rows(CELL.Row).ClearContents
End If
Next
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete
End Sub
答案 0 :(得分:0)
尝试此操作,如果要遍历每个单元格并进行测试,可以,但是您需要从下至上循环。另一种方法是使用过滤器并同时删除所有可见行。
Dim lr As Long
Dim i As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
For i = lr - 1 To 2 Step -1
If Cells(i, "B") = "LLC" Then
Cells(i, "B").EntireRow.Delete
End If
Next i
另一种方法是使用过滤器并删除B列中具有“ LLC”的每一行
With ActiveSheet
.AutoFilterMode = False
With Range("A1").CurrentRegion
.AutoFilter Field:=2, Criteria1:="LLC"
On Error Resume Next
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
.AutoFilterMode = False
End With
这些只是示例,有很多方法可以完成此任务。
下面的代码可能更接近于您尝试做的事情。
With Sheets("Sheet1") 'Change to your worksheet name
For Each CELL In .Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row)
If CELL.Value = "LLC" Then
CELL.EntireRow.Delete
End If
Next CELL
End With