如何解决在 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 举报,一经查实,本站将立刻删除。