Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如果。。。(和)语句运行时错误“;13“;_Excel_Vba_If Statement_Runtime Error - Fatal编程技术网

Excel 如果。。。(和)语句运行时错误“;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

我的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 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