Excel VBA动态命名范围:如何检查范围是否为空

时间:2013-11-29 21:59:42

标签: excel-vba vba excel

我正在尝试编写一个excel sub,它将从命名范围中的条目填充数组。我对该范围的代码是:

=OFFSET(Home!$B$5,1,0,COUNTA(Home!$B:$B)-1,1)

我正在尝试编写一个vba脚本,该脚本将在调用函数之前检查命名范围是否已填充,但无法查看是否可以使用任何内容。尝试:

Debug.Print ActiveSheet.Range("NamedRange")

返回1004错误。并尝试:

If (IsError(ActiveSheet.Names("NamedRange")) Then

返回相同的错误。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:4)

这是你在尝试的吗?

Sub Sample()
    Dim rng As Range        
    Set rng = [NamedRange]        
    If Application.WorksheetFunction.CountA(rng) = 0 Then _
    MsgBox "Range is blank"
End Sub

在VBA中,您可以使用Range属性引用Excel的范围对象。使用方括号([])可以缩短这一点。例如,如果您要引用单元格A1,请使用“[A1]”。 Book1.xlsm的Sheet1中单元格A1的完全限定引用将是Application.Workbooks(“Book1.xlsm”)。工作表(“Sheet1”)。[A1]