Excel в SAP GUI - PullRequest
       26

Excel в SAP GUI

0 голосов
/ 11 января 2019
Private Sub CommandButton1_Click()
    On Error GoTo Err_NoSAP

    If Not IsObject(SAPGuiApp) Then
        Set SapGuiAuto = GetObject("SAPGUI")
        Set SAPGuiApp = SapGuiAuto.GetScriptingEngine
    End If
    If Not IsObject(Connection) Then
        Set Connection = SAPGuiApp.Children(0)
    End If
    If Not IsObject(SAP_session) Then
        Set SAP_session = Connection.Children(0)
    End If

    If IsObject(WScript) Then
        WScript.ConnectObject SAP_session, "on"
        WScript.ConnectObject SAPGuiApp, "on"
    End If

    If (Connection.Children.Count > 1) Then GoTo Err_TooManySAP

    Set aw = SAP_session.ActiveWindow()
    aw.findById("wnd[0]").maximize

Err_NoSAP:
    MsgBox ("You don't have SAP open or " & Chr(13) & _
        "scripting has been disabled."), vbInformation, _
        "For Information..."
    Exit Sub

Err_TooManySAP:
    MsgBox ("You must only have one SAP session open. " & Chr(13) & _
        "Please close all other open SAP sessions."), vbInformation, _
        "For Information..."
    Exit Sub
End Sub

Я пытаюсь запустить VBA через кнопку ActiveX. По какой-то причине приведенный ниже код завершается ошибкой при попытке получить объект SAPGUI. Я проверил, что SAP открыт, и у меня включены сценарии на моем клиенте и системе SAP. Есть мысли, что может быть причиной неудачи?

1 Ответ

0 голосов
/ 14 января 2019

Сначала я сделаю следующее расширение программы, а затем протестирую ее:

...
Set aw = SAP_session.ActiveWindow()
aw.findById("wnd[0]").maximize
'---------- new --------------------------------------
Exit Sub
'---------- new --------------------------------------

Err_NoSAP:
MsgBox ("You don't have SAP open or " & Chr(13) & _
    "scripting has been disabled."), vbInformation, _
    "For Information..."
    Exit Sub

Err_TooManySAP:
MsgBox ("You must only have one SAP session open. " & Chr(13) & _
    "Please close all other open SAP sessions."), vbInformation, _
    "For Information..."
Exit Sub

End Sub

С уважением, ScriptMan

...