我正在尝试从一个表格中读取某行的值为'#NA'的行。
我的脚本到目前为止是:
Sub remove_na()
Dim ws As Worksheet
Dim r As Variant
Dim i As Variant
Set ws = ThisWorkbook.ActiveSheet
r = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For Each i In Range("A1:A" & r)
If i = "#N/A" Then i.EntireRow.Delete
Next
End Sub
当我运行这个时,我在IF语句上得到一个类型不匹配的错误。我已经尝试解决这个问题好多年了,但一直无法解决。我已经尝试使用WHILE循环以及FOR。同样的问题也发生了。
处理数据的例子是这样的数据列(几百条记录)。
#N/A #N/A
#N/A #N/A
#N/A #N/A
#N/A #N/A
#N/A #N/A
#N/A #N/A
#N/A #N/A
456699.512 6523052.64
456699.512 6523052.64
456699.512 6523052.64
456699.512 6523052.64
456699.512 6523052.64
任何建议都将是非常感激的。
干杯
Sub remove_na()
Dim ws As Worksheet
Dim r As Integer
Dim i As Integer
Set ws = ThisWorkbook.ActiveSheet
r = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = r To 1 Step -1
If IsError(Cells(i, 1).Value) Then Rows(i).EntireRow.Delete
Next
End Sub
经过编辑以改进答案
您可以使用 IsError()
功能 来评估该单元格是否包含 #N/A
错在你 If...Then
声明。
像这样。
If IsError(i.Value) Then
i.EntireRow.Delete
End If
注:由于这个工作站没有excel,所以没有测试。