스크립트로 오류가 발생하면 포커스가 VBA 코드와 문제의 라인으로 바뀝니다. 나는 그것을 고치고 저장한다. 그런 다음 스크립트가 더 이상 실행되지 않고 멈추지 않았 음을 확인합니다.디버깅 후 내 VBA 스크립트가 계속 실행되지 않는 이유는 무엇입니까?
예를 들어, 지금은 Form_Timer()
이벤트를 사용하여 일부 테스트를 수행하고 있습니다 (간격은 1000ms로 설정 됨). 스크립트를 다시 테스트하기 위해 앞으로 1 분만 설정합니다 (예 : 현재 시간이 오전 8시 54 분인 경우 오전 8시 55 분에 시작하도록 설정). 그러나이 작업은 오류가 발생하면 작동을 멈 춥니 다. 아무도 이것이 왜 있는지 압니까? 필자는 스크립트를 다시 작동시키기 위해 Access DB 복사본을 닫고 다시 열어 보도록 사용자에게 알리고 싶지 않습니다.
코드 :
Private Sub Form_Timer()
On Error GoTo ErrorHandler
current_date_time = Now
If current_date_time = #6/28/2016 8:52:00 AM# Then
MsgBox ("the current_date_time variable holds: " & current_date_time)
'Declare objects
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim qdf As DAO.QueryDef
Dim oApp As Outlook.Application
Dim oMail As Outlook.MailItem
Dim mail_body As String
'Set objects
Set dbs = CurrentDb
Set qdf = dbs.QueryDefs("qry_BMBFLoc")
Set rst = qdf.OpenRecordset
Set oApp = New Outlook.Application
Set oMail = oApp.CreateItem(olMailItem)
mail_body = "The following jobs do not have the special BF location set in Job Orders: " & vbCrLf
If Not (rst.EOF And rst.BOF) Then
rst.MoveFirst
Do Until rst.EOF = True
mail_body = mail_body & rst!job & "-" & rst!suffix & vbCrLf
rst.MoveNext
Loop
'Email contents
oMail.Body = mail_body
oMail.Subject = "Blah"
oMail.To = "[email protected]"
oMail.Send
'Close stuff
rst.Close
dbs.Close
Set rst = Nothing
Set oMail = Nothing
Set oApp = Nothing
End If
End If
Exit Sub
ErrorHandler:
Dim msg As String
If Err.Number <> 0 Then
msg = "email Form Timer Error #" & Str(Err.Number) & " error Line: " & Erl & Chr(13) & Err.Description
MsgBox msg, , "Error", Err.HelpFile, Err.HelpContext
End If
Exit Sub
End Sub
이것은 바보 같은 질문 일 수 있지만 매크로를 디버깅 한 후에 스크립트를 계속하려면 f5를 누르는가? – jellz77
@ jellz77 아니, 아니야. F5 키를 누르면 매크로 이름을 묻는 대화 상자가 표시되지만 매크로를 제공하지는 못합니다. 나는 VBA 스크립트를 실행하고 있었는데 ... – whatwhatwhat
디버깅을 한 후에 Ctrl + S (저장)를 눌러 스크립트가 일시 중지되지 않았는지 확인합니다. 그것은 상단의'[break]'를 제거하기 때문에 스크립트가 재개되었다고 가정합니다. 그러나 더 이상 발화하지 않습니다. – whatwhatwhat