运行时错误13类型不匹配

时间:2013-07-02 09:46:09

标签: excel excel-vba excel-2010 vba

我正在运行下面的代码,如果列号中包含的单元格值,我将删除行。 15不活动,列10中的单元格值不是“e& d”,“vpg”等等。它返回给我这个错误:'运行时错误13类型不匹配'。

现在,当我针对单个条件运行它时,它适用于例如单元格值=活动或单元格值= E& D,但添加多个条件会返回错误。语法错了吗?我甚至尝试过切换而不是'或',将条件放在括号中,用逗号分隔它们。出于显而易见的原因,由于语法问题,它无法正常工作。有人能够指出我的错误吗?

Sub test()
Dim n1, n2, x, z, lastrow As Variant



                  ' To delete entire row if criteria is not met
                    Worksheets("Sheet2").Activate
                    Range("A4").Select
                    lastrow = Cells(Rows.Count, 1).End(xlUp).Row
                    For x = lastrow To 4 Step -1
                      If Cells(x, 15).Value <> "Active" And (Cells(x, 10).Value <> "E&D" Or "ESG" Or "DLM SER" Or "VPD" Or "PLM PROD") Then
                      Rows(x).Delete
                      End If
                    Next x
End Sub

提前致谢!

1 个答案:

答案 0 :(得分:0)

您的if语句语法错误,您需要像这样多次指定左侧

If Cells(x, 15).Value <> "Active" And (Cells(x, 10).Value <> "E&D" And Cells(x, 10).Value <> "ESG" And Cells(x, 10).Value <> "DLM SER" And Cells(x, 10).Value <> "VPD" And Cells(x, 10).Value <> "PLM PROD") Then

您还需要使用和在这种情况下而不是或因为您要检查所有条件是否为真,即列出的值都不在单元格x中,10

修改

如果要删除不活动的行或第10列中的值不匹配,您可能希望使用以下

If Cells(x, 15).Value <> "Active" Or (Cells(x, 10).Value <> "E&D" And Cells(x, 10).Value <> "ESG" And Cells(x, 10).Value <> "DLM SER" And Cells(x, 10).Value <> "VPD" And Cells(x, 10).Value <> "PLM PROD") Then

注意两个主要条件之间的差异