我需要遍歷表單中的所有命名區域。
我目前這樣做:循環遍歷Excel工作表中的所有命名區域
For Each nm In ActiveWorkbook.Names
的問題是,這片擁有全球範圍內與表範圍的名稱。
此循環僅獲取全局範圍。
我已經試過:
For Each nm In Activeworkbook.Sheets(1).Names
,但不能使它工作。此循環也只能獲取具有全局範圍的命名範圍。想法?
我知道最好的解決辦法是改變名字的範圍,但我做不到。
我需要遍歷表單中的所有命名區域。
我目前這樣做:循環遍歷Excel工作表中的所有命名區域
For Each nm In ActiveWorkbook.Names
的問題是,這片擁有全球範圍內與表範圍的名稱。
此循環僅獲取全局範圍。
我已經試過:
For Each nm In Activeworkbook.Sheets(1).Names
,但不能使它工作。此循環也只能獲取具有全局範圍的命名範圍。想法?
我知道最好的解決辦法是改變名字的範圍,但我做不到。
Dim intCounter As Integer
Dim nmTemp As Name
For intCounter = 1 To ActiveWorkbook.Names.Count
MsgBox ActiveWorkbook.Names(intCounter)
Next intCounter
可以使它今天工作。張貼在這裏,我讓我的問題更簡單,但這不是一個好主意。
我真正做的是從工作表導入一些值(使用application.getopenfilename選擇並使用workbooks.open打開)。 因此,我循環瀏覽此「導入」表單中的所有名稱,並將這些範圍的值導入到我的原始表單中具有相同名稱的範圍。
for each nm in thisworkbook.names
if left(nm.name, 5) = "campo" then
'here I make my copy
end if
next nm
原來,當你有表範圍的名稱,nm.name返回是這樣的:
nameOfSheet!nameOfField
所以我永遠無法獲得在若。爲了解決我的問題,我使用了下面這行。謝謝大家試圖幫助我。
currentName = Mid(nm.Name, InStr(1, nm.Name, "!") + 1)
無法複製您的問題。沒有麻煩地獲得本地和全球名稱。 – ZAT 2014-12-01 17:59:36