微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 VBA 中使用命名范围

如何解决在 VBA 中使用命名范围

如何在 VBA 中使用动态命名范围?例如,现在我使用名为“Range1”的命名范围,但用户可能会选择不同的名称(我必须使用很多命名范围,因此我需要更通用的名称)。我是新手,但我应该将命名范围存储在变量中吗?提前致谢!

这是我目前所拥有的:

Dim MyArray
Dim dctCol As dictionary
Dim strKey1 As String

Set dctCol = New dictionary  
MyArray = Range(ActiveWorkbook.Names("Range1").RefersToRange.Address)
For j = 2 To UBound(MyArray,2) 
    strKey1 = Trim(MyArray (1,j)) & "," & Trim(MyArray (2," & Trim(MyArray (3,j))
    dctCol(strKey1) = j
Next

解决方法

目前还不清楚需要什么。但是如果你只想处理一本书中的所有命名范围,而不管它们的名字,你可以通过 WB 名称集合:

Sub ListNamesAddresses()
    Dim nm As Name
    For Each nm In ActiveWorkbook.Names
        Debug.Print nm.Name,nm.RefersToRange.Address
        'do something with names and it's properties
    Next
End Sub

输出:

Name1         $D$4:$D$21
Name2         $E$4:$E$21
Name3         $F$4:$F$21
Name4         $G$4:$G$21
Name5         $H$4:$H$21
Name6         $I$4:$I$21

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。