Vba 打开文件时的错误处理
我有以下代码: 子补丁() 当一个文件找不到时,我只希望cofe继续处理下一个文件,因此我将“一个错误转到下一个日期”,但它不起作用。我仍然会弹出“未找到文件”和“调试”弹出窗口。一定是我遗漏了什么。使用以下模式:Vba 打开文件时的错误处理,vba,excel,excel-2010,Vba,Excel,Excel 2010,我有以下代码: 子补丁() 当一个文件找不到时,我只希望cofe继续处理下一个文件,因此我将“一个错误转到下一个日期”,但它不起作用。我仍然会弹出“未找到文件”和“调试”弹出窗口。一定是我遗漏了什么。使用以下模式: Sub patch() Dim r As Long, j As Long, c As Long Dim myDay As Long, myMonth As Long, myYear As Long Dim wb As Workbook Applic
Sub patch()
Dim r As Long, j As Long, c As Long
Dim myDay As Long, myMonth As Long, myYear As Long
Dim wb As Workbook
Application.DisplayAlerts = False
myYear = 2014
For myMonth = 2 To 2 Step -1
For myDay = 12 To 1 Step -1
On Error Resume Next
Set wb = Workbooks.Open("G:\Manu\PVA\Pmo_Multiprogrammes\10-Process & Tools\00 GESTION DE CHANGEMENT\03 AMÉLIORER\20 Base de données\00 Mproduct\19-Suivi\Suivi du Cseries\rapport quotidien\Suivi Cseries_" & myDay & "_" & myMonth & "_" & myYear & ".xlsm")
On Error GoTo 0
If Not wb Is Nothing Then
'## Do stuff
wb.Close False
End If
Next 'day
Next 'mont
Application.DisplayAlerts = True
End Sub
BTW,不要使用带有特定名称的变量,例如
day
,month
,year
sicne,在这种情况下,具有此名称的VBA函数(day()
,month()
,year()
)将不起作用是的,同样的情况也会发生。它仍然只是调试。我还检查了设置工具->选项->常规->选择未处理错误时中断。看看啊,这也有效,但就像另一个答案一样,只进行了一半。它不会弹出“调试”窗口,但会弹出“未找到文件”的excel窗口。我必须为每个丢失的文件按OK。我也能预防吗?这有一半效果。它不会弹出“调试”窗口,但会弹出“未找到文件”的excel窗口。我必须为每个丢失的文件按OK。我也能阻止吗?@user2385809,现在试试。它不会为您显示任何消息me@user2385809,,但它确实会弹出一个excel弹出窗口,显示“未找到文件”
——我认为这与您未包含的代码有关。我当前的代码无法触发任何弹出消息。请显示完整代码
Sub patch()
Dim r As Long, j As Long, c As Long
Dim myDay As Long, myMonth As Long, myYear As Long
Dim wb As Workbook
Application.DisplayAlerts = False
myYear = 2014
For myMonth = 2 To 2 Step -1
For myDay = 12 To 1 Step -1
On Error Resume Next
Set wb = Workbooks.Open("G:\Manu\PVA\Pmo_Multiprogrammes\10-Process & Tools\00 GESTION DE CHANGEMENT\03 AMÉLIORER\20 Base de données\00 Mproduct\19-Suivi\Suivi du Cseries\rapport quotidien\Suivi Cseries_" & myDay & "_" & myMonth & "_" & myYear & ".xlsm")
On Error GoTo 0
If Not wb Is Nothing Then
'## Do stuff
wb.Close False
End If
Next 'day
Next 'mont
Application.DisplayAlerts = True
End Sub