【发布时间】:2019-05-10 20:01:50
【问题描述】:
我在 Excel VBA 中创建了几个需要使用 3 个字典的自定义函数。
这些字典一旦设置就不会改变。
现在每个字典都是在每个函数中创建的。
我宁愿清理它,设置一次字典,然后在函数中引用它。
很遗憾,我似乎找不到任何关于此主题的文档。
【问题讨论】:
-
您可以创建一个可以从任何模块或对象访问的全局变量。或者,您可以创建一个保存字典的持久对象类(并可能提供更好的接口)。
-
虽然这似乎是一个令人信服的想法,但您很可能不需要任何全局字典对象。全局状态为不可维护的代码铺平了道路。全局对象的引用可以是
Set,可以在任何地方使用任何代码。根据您需要它的用途(信息太少无法说明),将状态封装在一个对象中,并将该对象作为参数传递给需要它的函数,这绝对是一个更好的主意。这些函数是完全独立的还是在同一个调用图中? -
使用 ADODB 代替字典。它们可以通过一个函数调用保存到磁盘。请参阅此处的示例 winsourcecode.blogspot.com/2019/05/… 和 docs.microsoft.com/en-us/sql/ado/reference/ado-api/… 的文档
-
@Noodles 对 OP 需要全局字典的用途做出了相当疯狂的假设。
-
@Noddles 我正在使用字典来利用 .Exists 方法。
标签: excel vba excel-formula excel-2016