我想从数据库中读取代码串。字符串应包含文本片段和稍后在项目中设置的一个/两个变量。结果应如下所示:
"Greetings, Tom."
通常我会做这样的事情:
Sub Show()
Dim strName as String
strName = "Tom"
Debug.Print "Greetings, " & strName & "."
...
但在这种情况下,部分
"问候," &安培; strName& ""
在我的数据库中。在运行时我将strName的值设置为多个名称(例如,在一种情况下为" Tom"在另一种情况下为" Marco")
如何让VBA知道strName是一个变量而不是一个要显示的字符串?最后我的电话应该是这样的:
strDbText = <String from Database>
strName = "Tom"
Debug.Print strDbText '--> Greetings, Tom.
有人可以帮助我一次吗? 非常感谢!
编辑: 此代码不是可执行文件。因此,无需使用VBIDE-Objects创建新模块并执行插入的代码。它是一个将在Word文档中写入的字符串。
解决方案: 字符串替换为Replace()函数
答案 0 :(得分:0)
我首先指定strName
并将其替换为数据库中的字符串,如此...
strName = "Tom"
strDbText = <String from Database>
strDbText = Replace(strDbText, "strName", strName) 'This distinguishes the string from the variable
Debug.Print strDbText '--> Greetings, Tom.
但是,我建议在数据库中使用另一个变量来代替strName
,因为它可能会让人感到困惑。
答案 1 :(得分:0)
绝对同意@ShanayL的回答并强烈建议使用它,我无法避免使用Eval指出一个不安全的替代方案来解决您的问题。 Eval
具有潜在危险,在您的应用程序中创建代码注入漏洞!!!
strDbText = """Greetings, "" & strName"
strName = "Tom"
Debug.Print Eval(strDbText) 'Greetings, Tom
注意:Eval
具有潜在的危险性,并且强烈反对使用它!