Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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
Excel 什么导致';can';找不到项目或库错误';如何防止这种情况发生?_Excel_Vba - Fatal编程技术网

Excel 什么导致';can';找不到项目或库错误';如何防止这种情况发生?

Excel 什么导致';can';找不到项目或库错误';如何防止这种情况发生?,excel,vba,Excel,Vba,我在excel中为我们的一个办公室开发的工具有问题。这是一个足够大的文件,里面有几个宏,但它每天都工作得很顺利 然而,每隔几天文件就会出现错误“找不到项目或库”,文件就会崩溃。我知道标准指南是,当出现此错误时,将转到vba>工具>引用并取消选中缺少的库,但这里的情况并非如此。简单地说,当这种情况发生时,文件崩溃并重新启动,如果只发生一次,则每隔一次尝试打开该文件都会导致相同的崩溃错误。我的意思是,文件可以是绝对好的,您将保存它,返回到它和错误发生。因此,我总是要恢复文件,这绝对破坏它,但我至少可

我在excel中为我们的一个办公室开发的工具有问题。这是一个足够大的文件,里面有几个宏,但它每天都工作得很顺利

然而,每隔几天文件就会出现错误“找不到项目或库”,文件就会崩溃。我知道标准指南是,当出现此错误时,将转到vba>工具>引用并取消选中缺少的库,但这里的情况并非如此。简单地说,当这种情况发生时,文件崩溃并重新启动,如果只发生一次,则每隔一次尝试打开该文件都会导致相同的崩溃错误。我的意思是,文件可以是绝对好的,您将保存它,返回到它和错误发生。因此,我总是要恢复文件,这绝对破坏它,但我至少可以恢复从它的信息上传到那里的用户和复制到模板

我有两个问题,是什么导致了这一切?我和其他办公室都在使用同一版本的excel,因此兼容性不应成为问题

2个问题是,是否可以采取任何措施来防止此错误的发生

这对我很有用:

在VB中转到工具»参考 1) 取消选中库“Crystal Analysis Common Controls 1.0”。或任何图书馆。 只需留下以下5个参考: 1) Visual Basic For Applications(这是定义VBA语言的库。) 2) Microsoft Excel对象库(它定义Excel的所有元素。) 3) OLE自动化(这指定了链接和嵌入文档以及其他应用程序的自动化以及Excel用于与外部世界通信的COM系统的“管道”的类型。) 4) Microsoft Office(它定义了所有Office程序通用的东西,如命令栏和命令栏控件。) 5) Microsoft Forms 2.0如果您使用的是用户表单,则这是必需的。该库定义了诸如用户表单和可放置在表单上的控件之类的内容。
然后保存。

我也遇到过类似的棘手问题

首先要做的是使用 这将导出您的模块,然后重新导入它们,因为在内部它们会得到大量二进制“lint”,这可能会导致问题

第二个建议是开始分解代码库。因此,开始移除模块,看看哪个模块是罪犯。我知道这很可怕,但你怎么知道问题出在哪里呢


第三个建议是始终完全限定您的功能。因此,不要使用Len(sMyString),而是编写VBA.Len(sMyString),这有助于防止误报编译错误。

我正好遇到了这个问题。如上所述,一旦发生错误,就会导致一个永久的“不可修复”循环。我使用powerquery和链接数据,这似乎会随机“损坏”所述的文件——最常见的情况是excel因某种原因崩溃

我发现以下任何一项都有效: -在不在LAN上的其他计算机上打开文件。这 这似乎是一项关键要求。 -使用“Excel Online”打开文件

在每种情况下,只需打开文件并用新名称保存即可。将新文件移回工作PC,它将再次完美打开

在极少数情况下(如果使用powerquery),在保存新文件之前必须“刷新所有”数据连接


另外,新文件通常比原始文件小。

这是否阻止了此错误的发生?我没有选择“Crystal Analysis Common Controls 1.0”,所有选择的其他控件与您的相同,但最后一个除外,但不使用用户窗体。Hmmm。。我懂了。。但问题是,这个工具可能会在几天内完全正常工作,并且错误会突然发生,我不知道是什么触发了它,所以不能像那样真正地测试它。。导出和重新导入模块的好处到底是什么?这是在错误发生之后还是之前完成的?因为在创建VBA程序的过程中,文件中积累了大量的垃圾代码。如果你不定期清理你的文件,你将开始经历由这些额外的行李引起的奇怪问题。清理一个项目需要将其所有VBComponents的内容导出到文本文件中,删除这些组件,然后从文本文件中重新导入这些组件。“当所有其他操作都失败时,这对我很有效。”。我在Excel online(浏览器中的Office 365不支持宏)中打开了工作簿,用新文件名保存(仍使用.xlsm文件扩展名),然后在桌面软件中重新打开。成功了。滚动到Greg Dodds答案-这很有效!