我正在处理一个VBA代码,并且需要部分代码来删除工作表中列表中文本的所有行" J"是" #N / A"。我编写了一段代码但是在调试时遇到了类型不匹配错误。
这是代码
Dim i As Long
For i = Cells(Rows.Count, 10).End(xlUp).Row To 1 Step -1
If Cells(i, 10) = "#N/A" Then Cells(i, 1).EntireRow.Delete
Next i
答案 0 :(得分:3)
将Range.SpecialCells method与 xlSpecialCellsValue 常量一起用作 xlErrors ,以快速识别J列中的所有单元格,并显示错误。目前还没有公开细胞是公式还是类型常数,所以我添加了代码来检查xlCellType Enumeration类型。
Sub del_error_rows()
With Worksheets("Sheet3")
On Error Resume Next
With .Columns(10).SpecialCells(xlCellTypeFormulas, xlErrors)
.EntireRow.Delete
End With
With .Columns(10).SpecialCells(xlCellTypeConstants, xlErrors)
.EntireRow.Delete
End With
On Error GoTo 0
End With
End Sub
如果没有具有该特定错误配置的单元格,则On Error Resume Next
是必需的。在这种情况下,SpecialCells将为Nothing
,您必须绕过因尝试处理任何内容而引发的任何错误。
答案 1 :(得分:1)
试试这段代码:
Dim i As Long
For i = Cells(Rows.Count, 10).End(xlUp).Row To 1 Step -1
If Cells(i, 10).Text = "#N/A" Then Cells(i, 1).EntireRow.Delete
Next i