[算表] VBA全域變數的位置問題

作者: yimean (溫柔殺手)   2018-10-29 11:54:59
軟體:Excel
版本:2013
各位板上的大大日安。
小弟有一個全域變數管理問題請教。
以前我都是在Sub裡面宣告變數,但是如果有一個變數要更改初始值我就要每一個Sub
都去改。
所以就想到了public變數。
為了集中方便管理,小弟正在思考Public變數放置的位置怎麼樣比較妥當。
目前有兩個想法,還請有經驗的大大指導。
1.放在Workbook物件裡面
2.建立一個模組只有單純的Public變數
會這樣想也是不想要Public變數分散各地,一但模組多了,worksheet多了,也難修改。
煩請指導,感謝。
作者: soyoso (我是耀宗)   2018-10-29 12:27:00
以public來宣告的話,個人會選擇寫於模組內
作者: yimean (溫柔殺手)   2018-10-29 14:26:00
@Soyoso 感謝回應,但是我發現,如果同時給值的話,好像會錯誤,該模組沒有任何程序。程序在其他模組。
作者: soyoso (我是耀宗)   2018-10-29 14:47:00
同時給值的話,好像會錯誤?不確定是回傳錯誤訊息,或是回傳的值非符合所需,這方面提供巨集碼測試才會較確定原po要的是什麼
作者: yimean (溫柔殺手)   2018-10-29 16:58:00
我在Public變數的模組有如下宣告Public dpath As Stringdpath = ThisWorkbook.Path我的Sub程序在其他模組,他顯示的錯誤訊息是"不正確的外部程序"
作者: newacc (XD)   2018-10-30 12:44:00
全域變數初始值建議在Workbook_Open()裡定義常數才可以在sub/function外賦值
作者: soyoso (我是耀宗)   2018-10-30 14:03:00
將dpath放置於程序sub,如微軟support內所舉範例https://i.imgur.com/Os9rw7M.jpg
作者: yimean (溫柔殺手)   2018-10-30 19:25:00
了解,感謝指導。

Links booklink

Contact Us: admin [ a t ] ucptt.com