是否可以使用类似变量名(nameOfVariable) = myValue
的方式?
我正在做的事情:
我的一个XLA Add-In
宏使用了很多模块级变量;其中许多是Public
,256个是Const
。 其中一些伪常量是不时从(可通过网络访问的)config.init文件的内容更新的。
因此,我需要在宏启动或用户启动某些特定过程时将值分配给一组公共变量。
config.init 文件的内容非常简单:
nameOfVariable1,value1
nameOfVariable2,value2
nameOfVariable3,value3
...
目前我是使用以下初始化过程来设置这些变量:
Do While Not EOF(1) ' Loop until end of config.init
Line Input #fnum, TextLine ' Read line into variable Textline
myNameOfVariable = Split(TextLine, ",")(0)
Select Case myNameOfVariable
Case "nameOfVariable1"
nameOfVariable1 = Split(TextLine, ",")(1)
Case "nameOfVariable2"
nameOfVariable2 = Split(TextLine, ",")(1)
Case "nameOfVariable3"
nameOfVariable3 = Split(TextLine, ",")(1)
...
Loop
但这意味着我需要在该过程的
Select Case
语句中列出每个变量名,即使分配值的指令完全相同(= Split(TextLine, ",")(1)
)。我想用类似下面的内容替换
Select Case
语句:Do While Not EOF(1) ' Loop until end of config.init
Line Input #fnum, TextLine ' Read line into variable.
nameOfVariable = Split(TextLine, ",")(0)
If thisvariableexist(nameOfVariable) then
variable(nameOfVariable) = Split(TextLine, ",")(1)
End if
Loop
为了使我在初始化文件中添加新变量(新的或当前声明为
Const
的变量)时,不必修改任何内容,这是否可能在 VBA 中实现?