在我在已损坏的版本中创建的还原文件中重新构建模块时,我意识到在前一天我已经复制并粘贴了(使用Ctrl-A,Ctrl-C和Ctrl-V)一些代码来自模块的工作表对象(我原本希望代码能够在导出工作表时随工作表一起迁移,然后改变主意并希望代码可以访问工作簿中的其他工作表,同时牺牲代码的能力用出口表) .
当我在VBA编辑器中执行复制和粘贴操作时,选择列表中的宏(将宏指定给形状对象时)的宏列出了模块名称作为“父”子地址(类似于Sheet对象如何在工作表中显示为“Sheet1.ExampleSub”) . 我的潜艇被显示为“NewModule.ExampleSub”,当时我一无所知,除了它只是有点奇怪/古怪但不是什么大不了的 . 将这些宏分配给各种形状对象后,它们测试得很好,我继续我的工作 . 在此之后的任何时候我都不能关闭并重新打开工作簿,这就是为什么我在第二天之前没有遇到任何编译错误 .
这是我能想到的唯一可能导致工作簿结构错误的问题,现在我已经在恢复的文件版本中重新创建了模块,宏正常工作,文件关闭并重新打开而没有错误或问题 . 我仍然不确定为什么在Sheet对象中执行Ctrl-A选择代码并在模块中复制粘贴会破坏工作簿结构,但在这种情况下似乎已经这样做了 .