【发布时间】:2015-07-15 15:19:09
【问题描述】:
我创建了 几个常量(用关键字 Const 声明的 VBA 标识符)看起来像 Rg_Euro、Rg_Usd、Rg_Cad,... 来定义特定区域到我的工作簿。
因为我正在使用的数据库中有这些“扩展”(Euro、Usd、Cad、...) , 我试图通过创建一个字符串来获取常量的值,如下所示:Str = "Rg_" & extension(i)
但我似乎无法找到一种解决方法来调用常量并从中获取它的值......我用谷歌搜索它但没有找到我想要的东西,我我开始认为这可能无法直接...
我想到了一个用户定义函数,在字符串上带有 Select Case 以返回正确的值,但它只是要添加另一个函数,所以我正在寻找如果有一个更直接的解决方案!
【问题讨论】:
-
常量是什么意思?你的意思是用关键字
Const声明的VBA 标识符吗?如果是这样——我看不出你怎么能比使用选择案例或字典做得更好。将它包装在一个函数中是良好编程而不是糟糕编程的标志。如果常量是指工作簿名称集合中的条目(命名范围或命名值),那么很容易从字符串变量中访问它们。 -
@JohnColeman :我将立即进行编辑以避免误解,但实际上我的意思是在 VBA 中声明的
Const变量,我知道其他变量可以通过ListObject... 访问。对于函数,我知道这仍然是一个很好的解决方案,但我想知道是否有更直接的方法可以做到这一点,即使它显然没有。 -
他们不是名字有什么原因吗?无论如何——与其编写一个从字符串返回值的函数,也许您可以编写一个在 workbook_open() 上运行一次并创建或更新用作这些别名的名称的函数。命名范围在 VBA 中比 const 标记范围更自然(为您似乎在做的事情提供一个术语)。
-
不,确实,我开始使用的 VBA Consts 似乎是一个更好的主意!谢谢输入,我没有这样想过,但我很可能会将其更改为命名范围!我仍然会先打开这个问题,看看是否有人对此主题有有趣的意见
-
VBA 具有自动垃圾回收功能。这应该不是问题。
标签: vba excel ms-word powerpoint