我有一些 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