【发布时间】:2017-06-16 20:09:01
【问题描述】:
我在 VBA 中为 Word 2013 构建了一个自定义 BuildingBlock 管理系统,使用户能够更方便地对 BuildingBlocks 进行分类、过滤和使用。
这些块存储在.dotm 模板文件中,该模板文件附加到带有管理系统代码的.docm 文件中。后者的内容不时在全球范围内更新,每个用户的本地副本也可能包含单独的内容。所有用户都应该能够创建自动可供所有其他人使用的新块。此外,应该可以随时(在线、离线)使用本地块,只有创建/删除块需要网络连接。
这是一个试图解释连接的图形:
我的方法是在每次打开本地工作文件时以及在本地启动任何更改之前将存储文件从网络复制到本地。更改后,网络文件会立即更新。这样,其他用户的更改很可能不会被覆盖(仅当它们同时发生时)并且所有用户都有一个最新的块集合来使用。
问题:
我无法覆盖正在使用的文件 - 因为工作文件引用了 .dotm 块存储文件,它会在后台打开。暂时分离模板也不起作用:我尝试使用
ActiveDocument.AttachedTemplate = ""
但这很不稳定,不会在我测试过的系统上处理(不同的配置)。我不知道为什么,但我不能依赖这样的解决方案。
这是我的问题: 你知道这样做的方法吗?有没有最佳实践?
感谢任何提示。
【问题讨论】:
标签: vba templates ms-office ms-word