Word 中的用户窗体更改变量

Userform in Word to change variables

我正在尝试使用用户表单自动化 Word 文件。

我想在 Word 文件中加入一些变量,并在功能区中放置一个按钮,用于打开用户表单以输入这些值。

我按照我在网上找到的一些教程进行操作,当我在用户表单上按“确定”时,我得到了以下代码:

Private Sub cmdOK_Click()

Set oVars = ActiveDocument.Variables
Hide

oVars(RfQ).Value = TextBox1.Value
oVars(SFDC).Value = TextBox2.Value
ActiveDocument.Fields.Update
Unload.Me

End Sub

我收到错误

"Compile Error, Variable not defined".

在我的文本中有以下内容:{DOCVARIABLE SFDC * MERGEFORMAT}

我的目标是用我在用户表单中输入的值填充变量。

除此之外,我希望每次从功能区打开用户窗体时,我都会预先填充变量中的信息,并且我可以 change/update 它们。

第一次你必须添加变量,像这样:

oVars.Add "RfQ", TextBox1.Value

创建后,您可以这样更改它:

oVars("RfQ") = TextBox1.Value

评论有问题后更新
在您的示例中,您写了 oVars(RfQ).Value。这意味着 "Take the document variable with the name stored in the vba variable RfQ"。我猜这不是你想要的。
我的猜测是文档变量名为 RfQ 并且您想将其用作变量的硬编码名称。在这种情况下,为文档变量名称添加引号,如下所示:

oVars("RfQ").Value = TextBox1.Value

由于没有引号,您引入了一个新的隐式 vba 变量,名称为 RfQ,没有值。这产生的效果是您试图读取一个空名称的文档变量。如果您将 Option Explicit 放在模块的顶部,您将免受此类问题的影响。