我在Excel VBA中編寫了一個相當長的宏。我想使用命名範圍,而不是在宏中指定它。此宏旨在用於長期使用。如果範圍由另一個用戶改變會發生什麼?我如何調整我的代碼,使我的命名範圍可以適應不斷變化的職位?使用更改命名範圍Excel VBA
0
A
回答
2
我(個人)討厭命名範圍。特別是,當您從一個文件複製或粘貼表單/範圍到另一個文件時,您總是會遇到死鏈接或複製到不再工作的命名範圍或被重命名(因爲它們已經存在於該文件中)。
我對這個解決方案是以下兩種之一:
(1)我奉獻在VBA某一部分(甚至模塊)在全局變量聲明我的範圍。這與每個子開始處的所有變量的Dim
非常相似。
'*********************************************************
'** Declaring all ranges and where to find which data
'*********************************************************
Dim rngNamedRangeName As Range
Sub SetupAllGlobalVariables()
Set rngNamedRangeName = ThisWorkbook.Worksheets(1).Range("A1:C10")
End Sub
'*********************************************************
'** After that all your normal subs follow and whenever
'** necessary you can call the above to get your ranges
'*********************************************************
Sub ExampleCodeToFormatYourRanges()
Call SetupAllGlobalVariables
With rngNamedRangeName
.Interior.ColorIndex = 36
End With
End Sub
(2)然而,我的優選的第二解決方案是有一個單獨的very hidden
片,其中我參考/鏈接的所有範圍再次(這是很重要的我)。所以,基本上,我在這張單獨的表格中再次顯示所有「重要」數據。這將是你的命名範圍。但是沒有人允許觸摸這張表格(這就是爲什麼它隱藏起來的原因很)。如果您的任何範圍被移動或改變,那麼很容易重新鏈接此隱藏表上的範圍與其他表。然而,在隱藏表單上,所有數據仍處於同一位置,並允許您對VBA中的所有範圍進行硬編碼(僅從隱藏表中獲取)。
即使非VBA程序員通常可以用第二種方法修復這些問題。用第一種方法,你可能總是需要有VBA技能的人來修復它。
請注意,上述不是唯一的解決方案,也不是最好的解決方案。但我可以肯定地說,即使對於大公司來說,這已經被證明是一個可用的解決方案。
相關問題
- 1. Excel:命名範圍與VBA
- 2. Excel的命名範圍更改事件
- 3. Excel Interop - 如何更改命名範圍
- 4. vba excel set動態命名範圍
- 5. Excel VBA - 定義命名範圍
- 6. Excel的VBA命名範圍行和
- 7. 在範圍函數中引用命名範圍(Excel-VBA)
- 8. VBA引用命名範圍
- 9. Excel VBA:使用命名範圍確定上次使用的行
- 10. Excel 2010使用多個命名範圍
- 11. Excel中的命名範圍
- 12. 使用命名範圍的多行VBA
- 13. VBA Excel:修改動態命名範圍代碼
- 14. 如何命名獨立的範圍使用Excel VBA
- 15. 使用VBA在Excel中刪除損壞的命名範圍
- 16. 如何在excel 2007中使用VBA重命名範圍
- 17. 如何更改命名區域範圍
- 18. VBA宏命名範圍
- 19. 如何使用VBA在Excel中更改圖表的範圍?
- 20. Excel VBA命名範圍與動態創建名稱
- 21. 通過C#設置Excel命名範圍?
- 22. Excel VBA - Vlookup&範圍
- 23. Excel的VBA - 範圍
- 24. Access vba excel範圍
- 25. 用Excel快速命名範圍用C#
- 26. Aspose Cells - 更改命名範圍參考
- 27. 更改命名範圍參考
- 28. 使用VBA將散點圖XY系列更改爲命名範圍
- 29. excel命名範圍副本從表到
- 30. 在Excel中引用命名範圍
感謝您的回覆。但是,第二種解決方案可能會犧牲多用戶的可用性以及宏和電子表格的可移植性。當你隱藏電子表格時,它最終會飄浮在內存之外。 – Dombey
在某些時候,你必須告訴VBA在哪裏找到數據,直到你不把它放在結構化數據庫服務器(SQL)上,你必須在某處某處對引用進行硬編碼。所以,現在你有三種選擇,你可以評估它們並且儘可能多地嘗試它們。我(親自)已經這麼做了很長時間,並得出了上述結論。然而,不同的設置/參數可能導致不同的結論。所以,盡情地嘗試一下並比較它們。可能有人甚至可以添加另一個切實可行的解決方案。 – Ralph