>我在这个问题上使用了解决方案 Excel VBA 动态命名范围:如何检查范围是否为空白,但它对我不起作用,我在Set rng = [volTarget]
行上有一个Run-time error'424': Ojbect required
。
这是代码,我已经更改了 [] 中的名称,它适用于非空的动态命名范围。
Sub Sample()
Dim rng As range
Set rng = [volTarget]
If Application.WorksheetFunction.CountA(rng) = 0 Then _
MsgBox "Range is blank"
End Sub
如果没有名为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