Excel中的VBA返回类型不匹配

时间:2016-09-20 18:52:44

标签: excel vba excel-vba

我正在尝试创建一个宏,它将根据AB中的内容修改S,W和AH列中的内容 例如如果AB1 =否,则S1 = C-MEM,AH = N / A,W被清除。

出于某种原因,我在if语句的第一行出现“类型不匹配”错误,无法弄清楚为什么或如何解决它 - 即使在阅读了有关类似问题的其他帖子后也是如此。

Sub test()
    Dim lastrow As Long
    Dim i As Long
    lastrow = Range("AB" & Rows.Count).End(xlUp).Row
    For i = 2 To lastrow
    **->  If Range("AB" & i).Value = "No" Then
            Range("S" & i).Value = "C-MEM"
            Range("W" & i).Value = ""
            Range("AH" & i).Value = "N/A"
        End If
    Next i
End Sub

由于

1 个答案:

答案 0 :(得分:5)

您正在尝试测试错误是否为No

测试错误并跳过该循环中的逻辑:

Sub test()
    Dim lastrow As Long
    Dim i As Long
    lastrow = Range("AB" & Rows.Count).End(xlUp).Row
    For i = 2 To lastrow
        If Not IsError(Range("AB" & i).Value) Then
            If Range("AB" & i).Value = "No" Then
                Range("S" & i).Value = "C-MEM"
                Range("W" & i).Value = ""
                Range("AH" & i).Value = "N/A"
            End If
        End If
    Next i
End Sub