【问题标题】:Word VBA: Sharing variables between documentsWord VBA:在文档之间共享变量
【发布时间】:2016-10-01 00:32:24
【问题描述】:

我觉得这应该很明显,我只是在任何地方都找不到答案。

我有一个 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 变量是否为真,以及其他一些字符串等。

Private Sub UserForm_Initialize()

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

End Sub

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

【问题讨论】:

  • 你能展示你用来打开新文档并读取变量的代码吗?使问题更容易排除故障...
  • 谢谢,约翰。在帖子中添加了一些代码。
  • 打开新文件后是否关闭上一个文件?
  • 不,原文档一直打开。

标签: vba ms-word public


【解决方案1】:

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

  • 打开“源文档”

  • 打开“目标文档”

  • 点击工具->参考

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

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

    否则

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

【讨论】:

  • 非常感谢!这成功了! (我知道我必须缺少一些基本的东西)
猜你喜欢
  • 2022-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-04-09
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 2019-08-17
  • 2011-04-24
相关资源
最近更新 更多