为什么这个暗淡的定义是错误的?
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!
,并且不会破坏您的代码。
*编辑是因为我很笨,没有看到完整的公式。已修改答案。
我这里有一个代码,我需要创建一个按钮,该代码必须清除一行中值为 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!
,并且不会破坏您的代码。
*编辑是因为我很笨,没有看到完整的公式。已修改答案。