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
放在模块的顶部,您将免受此类问题的影响。
我正在尝试使用用户表单自动化 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
放在模块的顶部,您将免受此类问题的影响。