为什么这个暗淡的定义是错误的?

Why is this dim defined wrong?

我这里有一个代码,我需要创建一个按钮,该代码必须清除一行中值为 2< 和 >20 的所有数据,但我收到此错误:类型不匹配,错误代码 13。当运行中断模式下的代码可以正常工作,这就是我觉得很奇怪的地方,希望大家能帮帮我。

Sub ClearData()

Dim myRange As Range
Dim iCell As Range
Dim myValue As Long
Dim MyValue2 As Long

Set myRange = ThisWorkbook.Worksheets("SourceData").Range("D2:D8000")

myValue = 2
MyValue2 = 20

For Each iCell In myRange
     If iCell.Value <= myValue Or iCell.Value >= MyValue2 Or iCell.Value = 
     Zero Then iCell.Clear
Next iCell

End Sub

我想我对 iCell 的定义是错误的,但不知道为什么,因为我刚开始使用 VBA。

查看您的文档后,问题不在于您的代码,而在于电子表格中的数据。如评论中所述,错误发生在单元格 D7122 中,其值为 #DIV/0! Error: "division by zero" 因为公式除以范围 B 中的值,默认情况下未填充为零。您应该将其更改为 =IFERROR("Insert your formula here", ""),这将显示空白而不是 #DIV/0!,并且不会破坏您的代码。

*编辑是因为我很笨,没有看到完整的公式。已修改答案。