【发布时间】:2016-10-21 09:55:55
【问题描述】:
我有一列可能有 N/As。我正在运行一个循环来检查是否存在 N/A 错误并弹出带有错误位置的 MsgBox。 我遇到的问题是从有错误的相应列中存储一个值。
Option Explicit
Dim i As Integer
Dim where As Variant
Dim numbers(1 To 20) As Variant
For Each i In Range("b2:b" & lastrow)
If IsError(i) = True Then
where = Range("B" & i.Row).Address
MsgBox "Missing data was found in " & where
numbers (i) = Range("D" & i.Row).Value
End If
Next i
此代码有问题,如获取不匹配错误(运行时错误“13”)。 请指出我在这里做错的正确方向。 谢谢
编辑:我只引用了部分代码,这就是为什么没有 Sub/End Sub
【问题讨论】:
-
如果
lastrow从未获得任何值,则它保持为空并且Range("b2:b" & lastrow)将出错 -
它的 last_non_empty_row
-
我建议...我只是想确保它设置在任何地方(因为它也没有声明)
-
如果
lastrow设置正确但已超过 21 岁,那么您将收到此错误...当错误弹出时,您能分辨哪一行突出显示吗? -
事实上,您的代码似乎无法运行,因为您将
i声明为Integer但在For Each中使用它,该变量需要Object类型的变量(或Variant).