作者yimean (溫柔殺手)
看板Office
標題[算表] VBA全域變數的位置問題
時間Mon Oct 29 11:54:59 2018
軟體:Excel
版本:2013
各位板上的大大日安。
小弟有一個全域變數管理問題請教。
以前我都是在Sub裡面宣告變數,但是如果有一個變數要更改初始值我就要每一個Sub
都去改。
所以就想到了public變數。
為了集中方便管理,小弟正在思考Public變數放置的位置怎麼樣比較妥當。
目前有兩個想法,還請有經驗的大大指導。
1.放在Workbook物件裡面
2.建立一個模組只有單純的Public變數
會這樣想也是不想要Public變數分散各地,一但模組多了,worksheet多了,也難修改。
煩請指導,感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.116.8
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1540785301.A.DA2.html
1F:→ soyoso: 以public來宣告的話,個人會選擇寫於模組內 10/29 12:27
2F:→ yimean: @Soyoso 感謝回應,但是我發現,如果同時給值的話, 10/29 14:26
3F:→ yimean: 好像會錯誤,該模組沒有任何程序。程序在其他模組。 10/29 14:27
4F:→ soyoso: 同時給值的話,好像會錯誤?不確定是回傳錯誤訊息,或是回 10/29 14:47
5F:→ soyoso: 傳的值非符合所需,這方面提供巨集碼測試才會較確定原po要 10/29 14:48
6F:→ soyoso: 的是什麼 10/29 14:48
7F:→ yimean: 我在Public變數的模組有如下宣告 10/29 16:58
8F:→ yimean: Public dpath As String 10/29 16:58
9F:→ yimean: dpath = ThisWorkbook.Path 10/29 16:59
10F:→ yimean: 我的Sub程序在其他模組,他顯示的錯誤訊息是 10/29 17:00
11F:→ yimean: "不正確的外部程序" 10/29 17:00
12F:→ newacc: 全域變數初始值建議在Workbook_Open()裡定義 10/30 12:44
13F:→ newacc: 常數才可以在sub/function外賦值 10/30 12:45
14F:→ soyoso: 將dpath放置於程序sub,如微軟support內所舉範例 10/30 14:03
16F:→ yimean: 了解,感謝指導。 10/30 19:25