在单元格范围中查看时,运行时错误“ 13”类型不匹配

时间:2018-10-01 15:17:20

标签: excel vba excel-vba

我在一家汽车公司的物流管理部门工作,我想记录一个宏,该宏使我可以查找包含操作编号的一系列单元格,并删除与零售客户相关的文件(保留车队客户)。

车队操作从01RN92、01RN94、01RR和01RB开始。其他的是零售客户的。

引发错误的部分代码是此部分的if循环:

Dim celda As Object
Dim rng As Range
Set rng = Range("B2:B200")

For Each celda In rng
    valor = celda.Value
    If valor Like "01RN92*" Or valor Like "01RN94*" Or valor Like "01RB*" Or valor Like "01RR*" Then
        celda.Interior.Color = 65535
    Else
        celda.EntireRow.Delete
    End If
Next celda

我需要帮助。我在这里想念什么,怎么解决?

非常感谢。 亲切的问候。

3 个答案:

答案 0 :(得分:1)

B列的值的公式错误将导致此问题。以下重做会跳过它们:

Dim rng As Range
Set rng = Range("B2:B200")

For y = rng.Cells.Count To 1 Step -1
    With rng.Cells(y)
    valor = .Value
    If Not (IsError(valor)) Then
        If valor Like "01RN92*" Or valor Like "01RN94*" Or valor Like "01RB*" Or valor Like "01RR*" Then
            .Interior.Color = VBYellow
        Else
            .EntireRow.Delete
        End If
    End If
    End With
Next

注意:最好的做法是从下至上而不是从上至下删除,以确保删除应删除的每一行。

答案 1 :(得分:0)

欢迎来到Stackoverflow。您最有可能收到该错误,因为其中一个单元格中存在公式错误。

这里是复制和识别罪魁祸首细胞的简单方法。

b

enter image description here

如上面的注释中所述,逐步执行代码并检查在哪个单元格中遇到该错误。然后物理检查该单元格,看看是否存在任何公式错误,例如“#N / A”,“#DIV / 0!”

答案 2 :(得分:0)

好吧,问题在于某些单元格为#N / A,因为宏的第一部分上有一些公式。

非常感谢,我将继续改进宏以避免出现#N / A并使其完美运行。