【发布时间】:2019-04-04 08:09:31
【问题描述】:
我有一个宏代码可以一个接一个地打开几个excel表(我这里只显示3个):
Sub Macro1()
Workbooks.Open Filename:=Range("F19").Value, UpdateLinks:=0
ActiveWindow.Visible = True
Windows("Data Quality Checks - ITS v2.8.xlsm").Activate
Workbooks.Open Filename:=Range("F21").Value, UpdateLinks:=0
ActiveWindow.Visible = True
Windows("Data Quality Checks - ITS v2.8.xlsm").Activate
Workbooks.Open Filename:=Range("F23").Value, UpdateLinks:=0
ActiveWindow.Visible = True
Windows("Data Quality Checks - ITS v2.8.xlsm").Activate
End Sub
“范围”显示具有特定文件路径的单元格。 目前,如果宏没有找到其中一个文件,则会产生错误并强制停止进程。是否可以包含额外的行代码,如果在指定路径中找不到文件,则进程继续并且不会停止(不调试)?
【问题讨论】:
-
在顶部添加 On error resume next
-
@patel 在没有适当的错误处理的情况下永远不要使用
On Error Resume Next!这可能是你能想到的最糟糕的主意。 VBA Error Handling – A Complete Guide -
在尝试打开文件之前使用
DIR检查文件是否存在... -
也不是每次都激活
Windows("Data Quality Checks - ITS v2.8.xlsm")。只需将工作簿分配给 workbook 对象,然后使用wb.Range("F19").Value引用具有文件名和路径的单元格