0

我有一个 2 列的 excel 电子表格,最后一行是287983. 在 A 列中有数字,如果单元格没有数字,则将其NaN放置在那里。在 B 列中有日期。我正在尝试使用以下宏来删除 A 列中的单元格具有的所有行NaN

Sub Rowdel()
    Dim i As Long
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
        If Cells(i, 1) = "NaN" Then Cells(i, 1).EntireRow.Delete
    Next i
End Sub

但是,当我运行上面的代码时,NaN单元格仍然存在。谁能建议为什么代码不起作用?

4

1 回答 1

0

确保此代码引用正确的工作表。您可能在错误的工作表上运行代码,该工作表NaN在 A 列中不包含任何内容,因此不会导致代码运行的任何删除或其他可见迹象。

您可以尝试使用以下(仅调试)版本调试此代码:

Sub Rowdel()
    Dim i As Long
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
        Cells(i, 1).Select
        If Cells(i, 1) = "NaN" Then Cells(i, 1).EntireRow.Delete
    Next i
End Sub

在 Excel VBA 窗口中,使用 执行 sub F8,这将允许您单步执行代码并检查您引用的工作表。

于 2012-11-14T00:26:58.610 回答