错误:Microsoft Excel已停止工作 – 但我没有改变任何东西

我有一个inheritance的电子表格,自动运行一些VBA代码,然后退出。 这是在十月初的最后一次运行,运行良好。 现在,它失败,这个错误:

Microsoft Excel已停止工作

Windows可以尝试恢复您的信息并重新启动程序。

– >重新启动程序

– >debugging程序

如果我尝试重新启动,它会给我

自动化错误发生exception。

(实际上,它通常只给我closures或debugging程序的选项,但我在一台机器上有一次重启选项,所以这是另一个信息点。)

它将一组文件名加载到数组中,然后读取它们以便将数据加载到数据库中。 对于那些没有改变的文件,从2015年开始是失败的.Excel本身也没有改变,但这并不意味着没有一些升级到Office的行为会使其行为有所不同。 我倾向于error handling,而不是像过去那样跳过一个错误。

下面的代码一旦到达一个没有值的数组条目,就会失败:

FName = Array("april2010.xls", "feb2010.xls", "jan2010.xls", "july2010.xls", "june2010.xls", _ "mar2010.xls", "may2010.xls", "sep2010.xls", "..\FINAL-MO-BAL-2011\APRIL2011.xls", _ "..\FINAL-MO-BAL-2011\AUG2011.xls", "..\FINAL-MO-BAL-2011\DEC2011.xls", _ "..\FINAL-MO-BAL-2011\FEB2011.xls", "..\FINAL-MO-BAL-2011\JAN2011.xls", _ "..\FINAL-MO-BAL-2011\JULY2011.xls", "..\FINAL-MO-BAL-2011\JUNE2011.xls", _ "..\FINAL-MO-BAL-2011\MARCH2011.xls", "..\FINAL-MO-BAL-2011\MAY2011.xls", _ "..\FINAL-MO-BAL-2011\NOV2011.xls", "..\FINAL-MO-BAL-2011\OCT2011.xls", _ "..\FINAL-MO-BAL-2011\SEP2011.xls", FName2, FName3, FName4, FName5, FName6, _ FName7, FName8, FName9, FName10, FName11, FName12, FName13, FName14, FName15, _ FName16, FName17, FName18, FName19, FName20, FName21, FName22, FName23, FName24, _ FName25, FName26, FName27, FName28, FName29, FName30, FName31, FName32, FName33, _ FName34, FName35, FName36, FName37, FName38, , FName39, FName40, FName41, FName42, _ FName43, FName44, FName45, FName46, FName47, FName48, FName49) If IsArray(FName) Then Set BaseWks = Workbooks.Add(xlWBATWorksheet).Worksheets(1) WorkbookName = ThisWorkbook.Name rnum = 1 For Fnum = LBound(FName) To UBound(FName) Set mybook = Nothing On Error Resume Next Set mybook = Workbooks.Open(Filename:=FName(Fnum), ReadOnly:=True) With Application CalcMode = .Calculation .Calculation = xlCalculationManual .ScreenUpdating = False .EnableEvents = False .CutCopyMode = False .DisplayAlerts = False .Visible = False End With On Error GoTo 0 If Not mybook Is Nothing Then On Error Resume Next 

(并且代码继续读取并parsing每个文件。)

但是,如果我注释掉数组设置的最后一行,所以它停在具有值的最后一个条目的FName42处,它将起作用(并且一旦数组条目为空,就会在后面的代码中失败(因为2017年12月的文件还没有)。)

我不是一个VBA程序员,并且通过放入MsgBox行并运行它直到它死亡,我已经跟踪了这个部分的错误。 这是一个完全杀死Excel的东西。 它在我的Win10机器和我的Win7机器(和同事的机器)上这样做。

我们有Excel 2016,我知道我们现在也有计算机上的Office 365。

有什么想法尝试,所以它会继续处理?