运行时错误'424':对象要求检查动态命名范围是否为空

时间:2018-12-06 13:03:04

标签: excel vba

我在这个问题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

1 个答案:

答案 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