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

看板Office作者 (溫柔殺手)時間7年前 (2018/10/29 11:55), 編輯推噓0(0016)
留言16則, 3人參與, 7年前最新討論串1/1
軟體:Excel 版本:2013 各位板上的大大日安。 小弟有一個全域變數管理問題請教。 以前我都是在Sub裡面宣告變數,但是如果有一個變數要更改初始值我就要每一個Sub 都去改。 所以就想到了public變數。 為了集中方便管理,小弟正在思考Public變數放置的位置怎麼樣比較妥當。 目前有兩個想法,還請有經驗的大大指導。 1.放在Workbook物件裡面 2.建立一個模組只有單純的Public變數 會這樣想也是不想要Public變數分散各地,一但模組多了,worksheet多了,也難修改。 煩請指導,感謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.116.8 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1540785301.A.DA2.html

10/29 12:27, 7年前 , 1F
以public來宣告的話,個人會選擇寫於模組內
10/29 12:27, 1F

10/29 14:26, 7年前 , 2F
@Soyoso 感謝回應,但是我發現,如果同時給值的話,
10/29 14:26, 2F

10/29 14:27, 7年前 , 3F
好像會錯誤,該模組沒有任何程序。程序在其他模組。
10/29 14:27, 3F

10/29 14:47, 7年前 , 4F
同時給值的話,好像會錯誤?不確定是回傳錯誤訊息,或是回
10/29 14:47, 4F

10/29 14:48, 7年前 , 5F
傳的值非符合所需,這方面提供巨集碼測試才會較確定原po要
10/29 14:48, 5F

10/29 14:48, 7年前 , 6F
的是什麼
10/29 14:48, 6F

10/29 16:58, 7年前 , 7F
我在Public變數的模組有如下宣告
10/29 16:58, 7F

10/29 16:58, 7年前 , 8F
Public dpath As String
10/29 16:58, 8F

10/29 16:59, 7年前 , 9F
dpath = ThisWorkbook.Path
10/29 16:59, 9F

10/29 17:00, 7年前 , 10F
我的Sub程序在其他模組,他顯示的錯誤訊息是
10/29 17:00, 10F

10/29 17:00, 7年前 , 11F
"不正確的外部程序"
10/29 17:00, 11F

10/30 12:44, 7年前 , 12F
全域變數初始值建議在Workbook_Open()裡定義
10/30 12:44, 12F

10/30 12:45, 7年前 , 13F
常數才可以在sub/function外賦值
10/30 12:45, 13F

10/30 14:03, 7年前 , 14F
將dpath放置於程序sub,如微軟support內所舉範例
10/30 14:03, 14F

10/30 14:03, 7年前 , 15F

10/30 19:25, 7年前 , 16F
了解,感謝指導。
10/30 19:25, 16F
文章代碼(AID): #1RreILsY (Office)
文章代碼(AID): #1RreILsY (Office)