找不到项目或库使所有内容崩溃

时间:2019-02-14 16:53:59

标签: excel vba taskscheduler

我有一些Excel文件可以通过宏刷新自己,还有一个用于控制打开其他文件的主文件。主文件具有一个Auto_Open宏,该宏可打开每个文档,在该文档中运行该宏,然后将其关闭。每个文档的宏实际上都会刷新内部的所有查询,并将该文档保存在两个不同的位置。最重要的是,我使用Window的Task Scheduler每两个小时打开一次主文档,从而启动了整个过程。

这通常效果很好。但是,偶尔会出现一个错误消息,提示“找不到项目或库”。这似乎是随机发生的,并且每次都使用不同的文档(尽管从不使用主文档)。一旦出现此错误,每次我尝试打开VBA窗口时,Excel都会完全崩溃。该文档中的宏将不再通过主文件的Auto_Open宏运行,我必须从头开始重新创建该文档。

我尝试按照Microsoft(https://docs.microsoft.com/en-us/office/vba/Language/Reference/User-Interface-Help/can-t-find-project-or-library)的建议找到该库,但无济于事。在受影响的文件中打开VBA窗口会立即导致崩溃,对于不受影响的文件,按照上述文章中的步骤进行操作不会发现任何错误。崩溃返回此错误文本:

问题签名:

问题事件名称:APPCRASH

应用程序名称:EXCEL.EXE

应用程序版本:16.0.11231.20130

应用程序时间戳记:5c518be9

故障模块名称:VBE7.DLL

故障模块版本:0.0.0.0

故障模块时间戳:5c064824

异常代码:c0000005

异常偏移量:00000000000b555a

操作系统版本:6.3.90600.2.0.0.272.7

语言环境ID:1033


主文件中的代码:

Sub Auto_Open()

Application.Wait (Now + TimeValue("0:00:10"))

Application.Calculation = xlCalculationManual

Workbooks.Open ("C:\Users\aowens\Desktop\Queries\ATSReports\ATSReports.xlsm")
Application.Run "'C:\Users\aowens\Desktop\Queries\ATSReports\ATSReports.xlsm'!Macro"
Workbooks("ATSReports.xlsm").Close False

Workbooks.Open ("C:\Users\aowens\Desktop\Queries\MiscLookups\MiscLookups.xlsm")
Application.Run "'C:\Users\aowens\Desktop\Queries\MiscLookups\MiscLookups.xlsm'!Macro"
Workbooks("MiscLookups.xlsm").Close False

(此模式会重复其他5个文件)

在一个文件中采样宏:

Sub Macro()

Dim errorcount
Dim broken
Dim this As Date

this = now()
errorcount = 0

On Error Resume Next

ThisWorkbook.Connections("Query - MasterROCL").Refresh
If Err <> 0 Then
errorcount = errorcount + 1
broken = broken & " ROCL"
End If
Err = 0

ThisWorkbook.Connections("Query - MasterRMEL").Refresh
If Err <> 0 Then
errorcount = errorcount + 1
broken = broken & " RMEL"
End If
Err = 0

ThisWorkbook.Connections("Query - MasterRHIL").Refresh
If Err <> 0 Then
errorcount = errorcount + 1
broken = broken & " RHIL"
End If
Err = 0

ThisWorkbook.Connections("Query - MasterREXH").Refresh
If Err <> 0 Then
errorcount = errorcount + 1
broken = broken & " REXH"
End If
Err = 0

Calculate

ThisWorkbook.Save
Application.DisplayAlerts = False
ThisWorkbook.SaveAs ("R:\Operations\Dashboards\Queries\ATSReports.xlsm")

Dim OutApp As Object
Dim OutMail As Object

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

With OutMail
.to = "aowens@explorenetwork.org"
.Subject = errorcount & " Errors for " & Format(now(), "MM/DD HH:MM") & " ATS Refresh"
.htmlBody = " ~ " & Round(1440 * (TimeValue(now()) - TimeValue(this)), 0) & " mins. Broken:" & broken
.Send
End With

End Sub

1 个答案:

答案 0 :(得分:1)

在类似情况下,我经常遇到与您相同的错误。我无法告诉您是什么原因导致错误或如何阻止该错误,但我可以为此提供帮助

“而且我必须从头开始重新创建所述文档。”

要恢复文件,您需要以Excel的安全模式打开文件(按住ctrl并打开Excel以激活安全模式),然后打开VBE>调试>编译项目。然后保存并关闭,下次打开文件时应该没问题。