清除内容时,如何解决 excel VBA 中的“运行时错误类型 13 类型不匹配”?

清除内容时,如何解决 excel VBA 中的“运行时错误类型 13 类型不匹配”?

我有一些 VBA 代码可以清除多个单元格的内容。大多数单元格都有数据验证,因此必须从选项列表中选择一个值(是、否、NA),其余单元格可以接受任何类型的数据。

当我第一次单击运行代码的按钮时,出现以下错误(如果单击“结束”,则单击按钮时不会再次出现错误):

在此处输入图片描述

我查看了其他问题,并在 Google 上搜索了这个问题。这似乎与添加不同类型的值有关,但由于我只是清除内容,所以这应该不是问题。

这是我的代码。错误发生在第一次清除内容时(单元格 C5:D5 的第 8 行)

Sub ReiniciarRef()
'
' ReiniciarRef Macro
'

'
    Range("C5:D5").Select
    Selection.ClearContents 
    Range("C7").Select
    Selection.ClearContents
    Range("C9:G10").Select
    Selection.ClearContents
    Range("C13:G13").Select
    Selection.ClearContents
    Range("C16:G16").Select
    Selection.ClearContents
    Range("C18").Select
    Selection.ClearContents
    Range("C23:D23").Select
    Selection.ClearContents
    Range("C25").Select
    Selection.ClearContents
    Range("C27:G28").Select
    Selection.ClearContents
    Range("C31:G31").Select
    Selection.ClearContents
    Range("C34:G34").Select
    Selection.ClearContents
    Range("C36").Select
    Selection.ClearContents
    Range("C41:D41").Select
    Selection.ClearContents
    Range("C43").Select
    Selection.ClearContents
    Range("C45:G46").Select
    Selection.ClearContents
    Range("C49:G49").Select
    Selection.ClearContents
    Range("C52:G52").Select
    Selection.ClearContents
    Range("C54").Select
    Selection.ClearContents
    Range("C59:D59").Select
    Selection.ClearContents
    Range("C61").Select
    Selection.ClearContents
    Range("C63:G64").Select
    Selection.ClearContents
    Range("C67:G67").Select
    Selection.ClearContents
    Range("C70:G70").Select
    Selection.ClearContents
    Range("C72").Select
    Selection.ClearContents
    Range("C77:D77").Select
    Selection.ClearContents
    Range("C79").Select
    Selection.ClearContents
    Range("C81:G82").Select
    Selection.ClearContents
    Range("C85:G85").Select
    Selection.ClearContents
    Range("C88:G88").Select
    Selection.ClearContents
    Range("C90").Select
    Selection.ClearContents
    Range("C5:D5").Select
End Sub

提前致谢

答案1

该错误可能是由“更改时”触发的验证引发的。请尝试:

    Application.EnableEvents = False

    Range("C5:D5").Select
    Selection.ClearContents
    [...]

    Application.EnableEvents = True
End Sub

相关内容