Excel VBA检查是否设置了命名范围

noo*_*r69 3 excel vba excel-vba

我试图确定是否已通过VBA设置了命名范围。命名范围被调用,LoadedToken并且当用户单击特定按钮时,该范围实际上已加载。我以此为证明已进行初始化。

我有一个功能来检查是否已发生:

Function ToolIsEnabled()

    ' We check if the R2A add-in has been loaded by detecting the named range
    If ActiveWorkbook.Names("LoadedToken") Is Nothing Then
        ToolIsEnabled = False
    Else
        ToolIsEnabled = True
    End If

End Function
Run Code Online (Sandbox Code Playgroud)

我收到应用程序错误。当然,VBA是不正确的。但是,我实际上该如何完成呢?

Mik*_*keD 5

Sub Test()
    Debug.Print IsNamedRange("Bumsti")
End Sub

Function IsNamedRange(RName As String) As Boolean
Dim N As Name

    IsNamedRange = False
    For Each N In ActiveWorkbook.Names
        If N.Name = RName Then
            IsNamedRange = True
            Exit For
        End If
    Next
End Function
Run Code Online (Sandbox Code Playgroud)

在OP上下文中的用法可能是

' ...
If IsNamedRange("LoadedToken") Then
    ' ...
End If
' ...
Run Code Online (Sandbox Code Playgroud)

或-如果需要设置程序特定的布尔

' ...
Dim IsTokenLoaded as Boolean
IsTokenLoaded = IsNamedRange("LoadedToken")
' ...
Run Code Online (Sandbox Code Playgroud)

两种结构都可以在源代码中清楚地表明您的目标。