我正在通过我的代码运行此循环,但列AV中的某些单元格存在#N/A并且出现错误。剩下的就是我想要的,但是如果它碰到#N/A就停止。我发现有些东西像IFERROR和ISNA一样使用,但我无法弄清楚如何将它放入我的代码中。我只想忽略#N/A并移到下一行,同时将#N/A留在原来的位置。我只是想跳过它并继续执行代码。我将如何能够做到这一点呢?如何在for循环中跳过#N/A,同时保持原样并继续?
Dim lngRow As Long
Dim lngRows As Long
'Find the last row in Column A
lngRows = Range("A" & Rows.Count).End(xlUp).Row
For lngRow = lngRows To 2 Step -1
If (LCase(ActiveWorkbook.Worksheets("SAP to ADP").Cells(lngRow, "AV").Value) = "lu" _
Or LCase(ActiveWorkbook.Worksheets("SAP to ADP").Cells(lngRow, "AV").Value) = "st" _
Or LCase(ActiveWorkbook.Worksheets("SAP to ADP").Cells(lngRow, "AV").Value) = "so") _
And LCase(ActiveWorkbook.Worksheets("SAP to ADP").Cells(lngRow, "AU").Value) = "union" Then
ActiveWorkbook.Worksheets("SAP to ADP").Cells(lngRow, "AW").Value = "MATCH"
End If
Next
感谢您提前提供所有帮助!
谢谢你的帮助。我喜欢你如何修改它现在看起来好多了的代码。但我有一个问题。代码类型的作品,但它跳过#N/A之后,它错误地在下一个,并说类型不匹配。尽管我可以看到它已经跳过了一个。也许我只是在那个我不记得的单元格里输入N/A。但是一旦碰到错误就不会继续...... – Robillard
你也提到了中间值。这是你放在那里的“s”价值吗?我喜欢你如何做,只是想知道这是否是你的意思。 – Robillard
你说得对,后面的运行时错误没有被捕获。我更改了代码,现在它将忽略所有错误。这里的优雅之处在于,您不必更改操作代码本身,只需添加“On Error”语句。是的,从表中读取的值较小,多次使用,因此分配给变量's'。 – user1016274