Excel 如果。。。(和)语句运行时错误“;13“;
我的if语句需要帮助。在下面显示的代码中:第一个if。。。然后,第二节按预期工作,但是第二节创建了一个运行时错误“13”。有人能告诉我如何解决这个问题吗?/我做错了什么Excel 如果。。。(和)语句运行时错误“;13“;,excel,vba,if-statement,runtime-error,Excel,Vba,If Statement,Runtime Error,我的if语句需要帮助。在下面显示的代码中:第一个if。。。然后,第二节按预期工作,但是第二节创建了一个运行时错误“13”。有人能告诉我如何解决这个问题吗?/我做错了什么 Sub ASN_BaaN3() Dim i As Integer i = 0 ThisWorkbook.Sheets("BaaN").Activate Do While ThisWorkbook.Sheets("BaaN").Cells(2 + i, 1) <> "" 'CHECK NON SERIAL
Sub ASN_BaaN3()
Dim i As Integer
i = 0
ThisWorkbook.Sheets("BaaN").Activate
Do While ThisWorkbook.Sheets("BaaN").Cells(2 + i, 1) <> ""
'CHECK NON SERIALIZED
If Range("J" & 2 + i).Value = "N" Then
Range("P" & 2 + i).Value = "Ok, Non Serialized"
Range("P" & 2 + i).EntireRow.Interior.Color = RGB(198, 239, 206)
End If
If Range("J" & 2 + i).Value = "Y" And _
Range("M" & 2 + i).Value = "ACK" And _
Range("o" & 2 + i).Value = "TRUE" Then
Range("P" & 2 + i).Value = "Ok, Non Serialized"
Range("P" & 2 + i).EntireRow.Interior.Color = RGB(198, 239, 206)
End If
i = i + 1
Loop
End Sub
同样,当像这样键入代码时
If Range("J" & 2 + i).Value = "Y" Then
If Range("M" & 2 + i).Value = "Y" Then
请帮忙 作为补充,你有没有理由不在开始时使用
i=2
并删除所有2+i
内容?你必须在单元格(“M”&2+i)
中有一些#NA
(或其他错误)。首先,确保你对所有范围引用进行了限定。目前,您正在使用隐式Activesheet引用,这可能是您在代码运行时想要的,也可能不是。如果activesheet发生更改,您将不知道它在错误的工作表上运行,直到可能已经太晚了。正如A.S.H所建议的,您可能在单元格中存在某种错误,导致代码抛出自己的错误。VBA无法隐式地将错误类型与字符串类型进行比较。尝试调试。打印要比较的值,以便查看代码看到的内容。
If Range("J" & 2 + i).Value = "Y" Then
If Range("M" & 2 + i).Value = "Y" Then