Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA这个词,前面的代码挡住了路_Vba_Ms Word - Fatal编程技术网

VBA这个词,前面的代码挡住了路

VBA这个词,前面的代码挡住了路,vba,ms-word,Vba,Ms Word,我为某人写了一个单词vba宏。我已将该文件保存为.dotm和.docm文件。当我打开他电脑上的文件时,我看到里面有一堆宏,我没有写 甚至有时当我在自己的计算机上打开自己的word宏时,会看到一堆我没有编写的代码,通常在“正常”选项卡下: 问题是word文档中以前的代码有时会导致新代码出错 其他类型的项目不会出现这种情况。VBA for Excel、powerpoint、access等 问题1:为什么会有这样的代码 问题2:我如何向某人发送word宏文件而不必担心前面的代码会妨碍我 问题1:为什

我为某人写了一个单词vba宏。我已将该文件保存为.dotm和.docm文件。当我打开他电脑上的文件时,我看到里面有一堆宏,我没有写

甚至有时当我在自己的计算机上打开自己的word宏时,会看到一堆我没有编写的代码,通常在“正常”选项卡下:

问题是word文档中以前的代码有时会导致新代码出错

其他类型的项目不会出现这种情况。VBA for Excel、powerpoint、access等

问题1:为什么会有这样的代码

问题2:我如何向某人发送word宏文件而不必担心前面的代码会妨碍我

问题1:为什么会有这样的代码

Normal.dotm
是标准文档模板

无论何时启动Microsoft Office Word 2007,Normal.dotm模板都会打开,其中包括确定文档基本外观的默认样式和自定义设置

打开空白文档时,我认为默认情况下Word将使用此模板,因此Normal.dotm文件中的任何宏都将保留在“新”文档中,而且
Normal.dotm
将显示在VBE中。(如果您有一个
Personal.xlsb
文件,这实际上与Excel类似,尽管默认情况下Excel中不存在此文件)

问题2:我如何向某人发送word宏文件而不必担心前面的代码会妨碍我

在发送到其他模块之前,您始终可以手动从文件中删除任何不需要/不需要的模块

或者,分发宏的更好方法是在文档模板或外接程序文件中

或者,您可以将模块代码导出为文本文件,其他用户可以将其导入。

为您提供了一个可靠的答案,但要添加一些附加信息来解释此行为: 打开/关闭/更改任何文档(全局行为)时,将触发正常模板。因此,如果您将一些宏代码添加到Normal模板中,则即使在打开空白Word文档时,也会出现这种情况


为了避免这种情况,要么不要将代码放在您不希望在全球范围内发生的Normal中,要么遵循David答案中的一个备选方案。我的猜测是,您希望宏只链接到某些文档,在这种情况下,您应该将它们放置在正常之外,以避免出现冲突行为。我个人更喜欢用于全局行为的插件,如果这正是您所寻找的,因为它们不会在Normal中的现有代码中产生任何奇怪的行为

很好的答案:)与文档模板的发布方式相比,正常的全球性质可能值得一提?@DonkeyKong可以随时用这些信息修改/更新我的答案,我在Word中没有做太多的开发,因此我对这一点不像我对PPT或XLS那么熟悉。谢谢你的回答。但造成问题的不是我这边的额外代码,而是接收方的代码。“即使他打开一个空白的word文件,那里也已经有一堆代码了。”贝纳姆,我可以解释一下。