【问题标题】:VBA: Load only a UserForm from a different DocumentVBA:仅从不同的文档加载用户窗体
【发布时间】:2018-05-12 18:44:32
【问题描述】:

在这里使用 VBA(完全是初学者)。我希望 Doc1 中的 UserForm(例如“Master”)通过单击按钮从 Doc2 加载 UserForm(例如“Apprentice”)。我不希望 Doc2 打开 - 只打开它的 UserForm。

从 Doc1 加载“学徒”用户窗体后,我希望 将其按钮的操作应用于 Doc1。因此,例如,如果 Apprentice UserForm 有一个向 Document 添加字符串“Hello”的按钮,它应该在单击时将“Hello”添加到 Doc1。

希望这是有道理的,如果不是,请提前道歉

【问题讨论】:

    标签: vba userform


    【解决方案1】:

    你问的是不可能的。为了访问和运行文档中的代码,该文档必须在 Word 中运行(打开)。 VBA 代码无法从已关闭的文档中运行。

    也许您需要的是一个 dotm(模板),您将其作为加载项加载 - 代码已加载,但文件并未按照通常意义上的术语打开。例如,Normal.dotm 在这个意义上充当插件,但用户也可以访问。用户无法以与 Normal.dotm 相同的方式访问作为加载项加载的任何其他模板,但它包含的代码以相同的方式可用。

    Doc1 中的代码可以运行加载项中的代码,加载项中的代码可以与当前在 Word 应用程序中打开的任何文档一起使用。

    【讨论】:

    • 谢谢辛迪。如果没有加载项 - 我可以打开辅助文档,将其隐藏(除了其 UserForm),然后将其 UserForm 应用到主文档吗?
    • 添加一些上下文:
    • 目前我有 1000 个文档和 20 个用户表单。每个文档在打开时加载一个用户窗体。它还具有 4-5 个其他用户表单,可从最初加载的用户表单访问。每个文档都包含不同的用户窗体组合。现在,如果用户窗体发生更改,我们必须将其导入到所有使用它的文档中——在每次更改之后。这真的很乏味。我的工作是探索如何改进流程,以便对单个用户窗体的更改将反映在所有使用它的文档中(即删除手动导入过程)
    猜你喜欢
    • 2015-08-11
    • 2021-12-20
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 2014-11-10
    • 1970-01-01
    • 2019-12-18
    相关资源
    最近更新 更多