Word VBA:在文档之间共享变量

时间:2016-06-01 14:50:00

标签: vba word-vba public

我觉得这应该是显而易见的,我在任何地方都找不到答案。

我有一个Word文档,其中包含在各种过程中声明和定义的几个公共变量。一个过程打开另一个Word文档,其中包含一个打开时加载的表单。对于我的生活,我无法在第二个文档中使用原始文档变量中的值。我是否误解了公共变量的本质?我发现的所有内容似乎都表明这些值应该对新打开的文档可见。

所以要打开第二个文档,我使用下面的代码(其中一些是在其他地方声明和设置的,但我认为这是相关的东西:

Public iMarker as boolean

Sub OpenDoc()
   If check_ExA.Value = True Then 'a checkbox on a userform
   docName = docsPath & "/" & "seconddocumentpath.docm"
   iMarker = True
   formAddDocs.Hide
   Set addDoc = Documents.Open(docName)
End Sub
从那里开始,新文档有一个在Open上显示的表单,在初始化中,我希望它能够查看iMarker变量是否为true,以及其他一些字符串等。

Private Sub UserForm_Initialize()

If iMarker = True Then
  'do some other stuff
End If

End Sub

我尝试将Initialize sub更改为public,但没有做任何事情。当第二个文档打开时,它不会看到iMarker是真的。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

要使doc01(“源文档”)的公共变量可用于doc02(“目标文档”)文档,请执行以下操作:

  • 打开“源文档”

  • 打开“目标文档”

  • 点击工具 - >参考

  • 从“参考”对话框的“可用参考”列表框中单击“源文档”的“项目”

    您可以从对话框底部附近出现的路径

    中识别出来

    否则

    • 关闭参考对话框
    • 转到“源文档”并重命名其项目(工具 - >项目属性,编辑“项目名称”文本框并单击“确定”),并使用有意义的名称(例如“MainProject”)
    • 返回“目标文档”项目
    • 打开“引用”对话框,现在从“可用引用”列表框中单击“MainProject”引用
  • 保存并关闭目标文档