我对此引用有类型不匹配错误

Har*_*rry 1 excel vba for-loop if-statement excel-vba

这是我遇到问题的代码.当B列中相应行中的值为Deuterium时,我只是尝试将值"0"输入到列G中.调试器告诉我我的错误在于包含If语句的行.

For i = 3 To 30
    If Worksheets("Master PEC").Cells(i, 2) = "Deuterium" Then
        Worksheets("Master PEC").Cells(i, 7).Value = 0
    End If
Next
Run Code Online (Sandbox Code Playgroud)

截图:

截图

Sco*_*ner 6

您不能将错误等同于字符串.

您需要添加一个检查以不测试错误.

For i = 3 To 30
    If Not IsError(Worksheets("Master PEC").Cells(i, 2)) Then
        If Worksheets("Master PEC").Cells(i, 2) = "Deuterium" Then
            Worksheets("Master PEC").Cells(i, 7).Value = 0
        End IF
    End If
Next
Run Code Online (Sandbox Code Playgroud)