【发布时间】:2017-06-07 10:46:58
【问题描述】:
我试图弄清楚如何将给定工作表中的范围名称放入数组中。我已经了解了 listnames 功能,但这似乎一次性列出了它们。有什么想法吗?
【问题讨论】:
我试图弄清楚如何将给定工作表中的范围名称放入数组中。我已经了解了 listnames 功能,但这似乎一次性列出了它们。有什么想法吗?
【问题讨论】:
类似:
Sub listum()
Dim ary(1 To 3) As String
With ActiveWorkbook
If .Names.Count > 0 Then
For i = 1 To .Names.Count
MsgBox (i & " " & .Names(i).Name & " " & Range(.Names(i)).Address)
ary(i) = .Names(i).Name
Next
End If
End With
End Sub
将显示它们并将它们放入一个数组中。
调整数组大小以满足您的需要。
确保工作簿中没有非范围名称。
【讨论】:
PrintArea 是一个有效的单元格组,就像任何其他用户定义的命名范围一样!
我的版本是我用的动态数组:
Sub TestNamedRange()
Dim i As Long
Dim intCount As Long
Dim NameArray() As String
'count number of named ranges
intCount = ThisWorkbook.Names.Count
ReDim NameArray(intCount) 'for dynamic number of named ranges
'assign all names to each array element
For i = 1 To intCount
NameArray(i) = ThisWorkbook.Names(i).Name 'remove .Name if you want address range only
Next
'check array elements
For Each ele In NameArray
Debug.Print ele
Next
'manipulate your array here
End Sub
【讨论】: