[算表] 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