Если VBScript завершает работу рано, свяжитесь с VBA, чтобы завершить сценарий VBA раньше. - PullRequest
1 голос
/ 15 января 2020

У меня есть некоторый код VBA, который вызывает код VBScript для запуска экспорта SAP:

'VBA CODE

'Grab date modified before running export
tstamp = FileDateTime("exportFilePath")

'Call .vbs file for SAP export and pass shift variable to .vbs file

Shell "wscript """ & "filepath.vbs" & Shift & " " & DateOffset, vbNormalFocus

'Wait for export file to update before opening
X = 1
newtstamp = FileDateTime("exportFilePath")
Do While tstamp = newtstamp
    Application.Wait (Now + TimeValue("0:00:01"))
    newtstamp = FileDateTime("exportFilePath")
    X = X + 1
    If X = 60 Then 'allow 60 seconds for export 1 to complete before exiting script
        MsgBox ("Export 1 took over 60 seconds and failed to complete, try again!")
        Exit Sub
    End If
Loop

В некоторых случаях сценарий VBScript будет завершен досрочно (пользователь не вошел в SAP, et c. )

'VBScript

On Error Resume Next 

Set SapGuiAuto = GetObject("SAPGUI")
Set SAPApp = SapGuiAuto.GetScriptingEngine
Set SAPCon = SAPApp.Children(0)
Set session = SAPCon.Children(0)

If Err.Number <> 0 Then 'Error number of zero means no error
    MsgBox ("Error! Log into SAP then try again.")
    wscript.Quit
End If

В подобных случаях я хотел бы сообщить VBA, что VBScript завершился досрочно. Это позволит завершить код VBA до того, как отведено 60 секунд, встроенных в Do L oop.

Мысли и предложения?

...