我正在嘗試我認爲會是相當簡單的vba語句來測試命名範圍是否作用於工作簿或特定工作表。Progammatically確定命名範圍是否作用於工作簿
作爲測試,我創建了一個新的Excel文檔並添加了6個命名範圍。這裏是他們是如何在名經理奠定了:
Name | Refers To | Scope
-------------+----------------------+-----------
rng_Local01 | =Sheet1!$A$2:$A$16 | Sheet1
rng_Local02 | =Sheet1!$C$2:$C$16 | Sheet1
rng_Local03 | =Sheet1!$E$2:$E$16 | Sheet1
rng_Global01 | =Sheet1!$B$2:$B$16 | Workbook
rng_Global02 | =Sheet1!$D$2:$D$16 | Workbook
rng_Global03 | =Sheet1!$F$2:$F$16 | Workbook
我預計運行:
For i = 1 To ThisWorkbook.Names.Count
If ThisWorkbook.Names(i).WorkbookParameter Then Debug.Print ThisWorkbook.Names(i).Name
Next i
會導致三個Workbook
範圍的命名範圍記錄,然而,沒有任何反應。沒有錯誤。 .Names(i).WorkbookParameter
評估爲False
對所有的命名範圍,我不知道爲什麼。
通過我碰到ValidWorkbookParameter
它看起來像只讀表妹WorkbookParameter
傳來VBA幫助Name
對象看,但是使用方法不作任何區別。
我也試圖明確設置ThisWorkbook.Names(i).WorkbookParameter = True
,但是這將導致一個錯誤:
"Invalid procedure call or argument"
儘管WorkbookParameter
被列爲是事實讀/寫
任何人都瞭解任何事情爲什麼這不起作用,因爲我也期待它呢?我誤解了Name.WorkbookParameter
應該如何工作?任何人都可以得到這個成功運行?
感謝非常有用的解決方案傢伙......我仍然好奇VBA中'Name'對象的'WorkbookParameter'和'ValidWorkbookParameter'屬性的行爲。在我看來,這些屬性不像*所宣稱的那樣工作*。 – 2011-12-28 15:32:17
不確定WorkbookParameter是什麼,但懷疑它是用於Sharepoint中的Excel Services而不是客戶端Excel – 2011-12-29 00:21:50