我在不斷更新和改善內置Excel中使用VBA宏財務模型的過程中啓用的是由多人運行。首先,這些模板被用作不同項目的預算,所以有很多時候都會創建這些模板,而較老的預算會被重新訪問。類命名區域 - Excel的VBA
我的模板的「守護者」,而其他用戶只需使用的文檔。無論何時我需要向每個人推送更新時,都會產生問題,因爲他們已經在較早版本的模板中創建了預算,並且在新模板中重新創建預算需要花費過多的時間。
我已經通過命名範圍,然後將這些命名範圍應用到舊版本,然後使用命名範圍複製到新版本模板中相同的命名範圍,在小範圍模板上解決了此問題。但是,這是通過單獨的代碼行來複制每個命名範圍。
有沒有辦法將一組命名區域聚合到一個類中,以便Excel可以循環遍歷類中的所有項並複製數據,而不是我需要編寫每行來執行復制?
這裏是我當前正在運行的代碼示例:
Workbooks(WB_Active_Name).Sheets("Office Staff Input").Range("Office_Employee_Names").Value = Workbooks(WB_Secondary_Name).Sheets("Office Staff Input").Range("Office_Employee_Names").Value
Workbooks(WB_Active_Name).Sheets("Office Staff Input").Range("Office_Employee_Positions").Value = Workbooks(WB_Secondary_Name).Sheets("Office Staff Input").Range("Office_Employee_Positions").Value
Workbooks(WB_Active_Name).Sheets("Office Staff Input").Range("Office_Employee_Numbers").Value = Workbooks(WB_Secondary_Name).Sheets("Office Staff Input").Range("Office_Employee_Numbers").Value
Workbooks(WB_Active_Name).Sheets("Office Staff Input").Range("Office_Employee_Bonus_Sharing").Value = Workbooks(WB_Secondary_Name).Sheets("Office Staff Input").Range("Office_Employee_Bonus_Sharing").Value
還有的多行代碼類似於這樣每個命名範圍打。在模板內部,範圍是指工作人員姓名,身份證號碼,工作時間等列表,並且它們還跨越工作簿中的多個工作表,每個工作簿的大小都不同。
我想知道是否有某種類的,我可以在每個命名範圍的前面放置時,我把它定義使他們作爲一個階級一起處理,並可通過環接的。例如:
Office_Employee_Names
成爲
GroupClass.Office_Employee_Names
然後代碼可以通過一切GroupClass
證明你目前如何做。顯示一些代碼,我們將幫助你改進它。同樣,你談論的東西的視覺示例也不會受到傷害,因爲很難想象出某些模板。 – 2014-02-25 15:30:25
你是否想要維護一個所有範圍的列表作爲你可以循環的東西?如果是這樣,你可以做到這一點......創建一個過程,該過程定義了一個包含所有命名範圍的字符串數組。然後,你總是可以根據需要添加新元素到數組中,並在你的代碼中引用該數組......我不理解你的問題嗎? –
使用示例代碼查看我對上面原始帖子的編輯。 – Michael