我想要一个错误处理程序来处理关闭未打开的Excel工作簿。
我尝试了以下代码。
If Workbooks("Combo.xlsx").IsOpen Then
Workbooks("Combo.xlsx").Close SaveChanges:=False
Else: Resume Next
MsgBox "Error: (" & Err.Number & ") " & Err.Description, vbCritical
End If
这给了我一条错误信息:
运行时错误:9下标超出范围。
答案 0 :(得分:2)
你真正需要的是
On Error Resume Next
Workbooks("Combo.xlsx").Close SaveChanges:=False
On Error Goto 0
如果没有使用该名称打开工作簿,则可以忽略该错误。
答案 1 :(得分:0)
我遇到了一个同样的问题,即“错误恢复上的下一步”似乎对此不起作用。我的设置只是为了解决未处理的错误,所以我不明白为什么在尝试关闭时它会不断出错。
无论如何,我制作了关闭工作簿时要调用的简单变通方法子程序:
Private Sub closeWorkbookIfOpen(wb As Workbook)
On Error GoTo NotOpen
wb.Close
NotOpen:
End Sub
不确定为什么继续简历不起作用,但这似乎可以解决问题!