excel vba变量引用另一个变量

excel vba变量引用另一个变量,excel,adodb,vba,Excel,Adodb,Vba,我正在尝试在ExcelVBA中设置一个通用过程来处理连接和读取数据库 我希望引用传递的变量名,然后在模块中更新,而不是将变量名硬编码到模块中。这将允许我在任何数量的应用程序中使用它,而不必硬编码变量名 范例 应用程序有一个变量: Dim cnDB1 As ADODB.Connection Dim cnDB2 as ADODB.Connection 我希望将变量“name”作为参数传递,并让泛型模块更新该值 Open_Database "cnDB1", strCnnnectionDetails1

我正在尝试在ExcelVBA中设置一个通用过程来处理连接和读取数据库

我希望引用传递的变量名,然后在模块中更新,而不是将变量名硬编码到模块中。这将允许我在任何数量的应用程序中使用它,而不必硬编码变量名

范例 应用程序有一个变量:

Dim cnDB1 As ADODB.Connection
Dim cnDB2 as ADODB.Connection
我希望将变量“name”作为参数传递,并让泛型模块更新该值

Open_Database "cnDB1", strCnnnectionDetails1
Open_Database "cnDB2", strConnectionDetails2

我已经通过Eval和Execute命令在VBS中完成了这项工作,但我无法确定如何在Excel VBA中执行类似的操作。

我只是通过定义一个全局ADODB连接来回答这个问题,我正在模块中引用它。呼叫完成后,我将全局值传输到我的应用程序特定连接


肮脏的解决方法,但它可以工作。

在VBA中没有完全等效的方法。如果使用具有公共成员变量或适当命名属性的类,则可以使用
CallByName
执行此操作。我承认我很难看到一个好处。这是我的方法,也是一个编写良好的类,用于应用程序将参数写入公共位置,以及用于VBA从该位置读取参数。我使用MS doc文件名作为公共位置的查找键。虽然不能很好地扩展,但在一个小商店中可以工作。