我在这个问题Excel VBA Dynamic Named Ranges: How to check if range is blank上使用了解决方案,但对我来说不起作用,我在Run-time error'424': Ojbect required
行上有一个Set rng = [volTarget]
。
这是代码,我在[]中更改了名称,它与非空的动态命名范围一起工作。
Sub Sample()
Dim rng As range
Set rng = [volTarget]
If Application.WorksheetFunction.CountA(rng) = 0 Then _
MsgBox "Range is blank"
End Sub
答案 0 :(得分:1)
如果没有名为volTarget
的范围,则当您尝试像这样[volTarget]
进行评估时,VBA会引发#NAME错误。
在您的代码中,您需要处理缺少指定范围的情况。
一种可能的方法是:
Sub Sample()
Dim rng As Range
If Not IsError([volTarget]) Then
Set rng = [volTarget]
If Application.WorksheetFunction.CountA(rng) = 0 Then '=> This is redundant.
MsgBox "Range is blank"
End If
Else
MsgBox "No such range" '==> This is practically your black range as you are using dynamic named range.
End If
End Sub