>

SAP 스크립팅을 처음 접했지만 VBA에 대한 경험이 이미 있습니다. 현재 위치에 대해 SAP의 프로세스를 자동화하려고하는 다음 문제가 있습니다. 그래서 일련의 절차를 기록하고 매크로 시트에 코드를 붙여 넣고 Excell에서 다음 명령으로 VBS 코드를 읽도록합니다.

Dim SapGuiAuto As Object
Dim Application As Object
Dim Connection As Object
Dim Session As Object
Set SapGuiAuto = GetObject("SAPGUI")
Set Application = SapGuiAuto.GetScriptingEngine
Set Connection = Application.Children(0)
Set Session = Connection.Children(0)

모든 것이 괜찮지 만 SAP가 부품을 계산하는 데 몇 분이 걸리고 그 중간에 Excel이 메시지를 생성합니다.

그래서 계속하려면 확인을 클릭해야합니다. 왜냐하면 논스톱 팝업이 나타나고 목표에 도달하기 위해 10-15 번처럼 수행해야하므로 자동화 지점을 제거해야합니다. . 매크로없이 그것을 할 때 SAP는 나에게 오류를주지 않습니다.

Application.DisplayAlerts = False이지만 작동하지 않지만 대신 다음을 제공합니다.

넷과 사이트를 검색했지만 내 질문이 구체적이기 때문에 유용한 정보가 거의 없었습니다. 추가 정보 : 1. 제 랩탑은 직장에서 나 왔으며 허가없이 추가 소프트웨어 나 업데이트를 설치할 수 없으므로 다른 해결책이 있다면 알려주십시오.

  1. DDE에 대한 Excel 옵션을 확인하려고했지만 스크립트를 실행하려고 할 때만 오류가 발생합니다.

내 Excel 버전은 2013입니다. 따라서 누구나 내가 생각할 수있는 세 가지 솔루션 중 하나를 달성하도록 도울 수 있습니까? 1. OLE 팝업 비활성화

  1. 확인이 나타날 때마다 자동으로 확인을 클릭하십시오

  2. SAP가하는 동안 Excel을 멈추고 기다리시겠습니까? (그게 말이되는지 모르겠다.)-BTW, Application.Wait을 시도했지만 성공하지 못했습니다

미리 감사합니다. 누군가 나를 도와 줄 수 있기를 바랍니다. 문안 인사, 미하일


  • 답변 # 1

    위의 Storax는 실제로 문제의 해결책으로 다른 주제에 대한 링크를 제공했습니다.

    여기 코드 :

    개인 선언 기능 _     CoRegisterMessageFilter Lib "OLE32.DLL"_     (ByVal lFilterIn As Long, _     ByRef lPreviousFilter) Long

    하위 KillMessageFilter ()
        '' '원본 스크립트 Rob Bovey

    '''https://groups.google.com/forum/?hl=en#!msg/microsoft.public.excel.programming/ct8NRT-o7rs/jawi42S8Ci0J
    '''http://www.appspro.com/
    Dim lMsgFilter As Long
    ''' Remove the message filter before calling Reflections.
    CoRegisterMessageFilter 0&, lMsgFilter
    ''' Call your code here....
    ''' Restore the message filter after calling Reflections.
    CoRegisterMessageFilter lMsgFilter, lMsgFilter
    
    

    End Sub

  • 답변 # 2

    64 비트 Microsoft Office를 사용하는 경우 선언문에 따라 M_Delineshev가 제공하는 코드를 약간 변경해야합니다. 이 버전을 사용해보십시오 :

    Private Declare PtrSafe Function _
        CoRegisterMessageFilter Lib "OLE32.DLL" _
        (ByVal lFilterIn As Long, _
        ByRef lPreviousFilter) As LongPtr
    
    Sub KillMessageFilter() '''Original script Rob Bovey
    '''https://groups.google.com/forum/?hl=en#!msg/microsoft.public.excel.programming/ct8NRT-o7rs/jawi42S8Ci0J '''http://www.appspro.com/
    Dim lMsgFilter As Long
    ''' Remove the message filter before calling Reflections. CoRegisterMessageFilter 0&, lMsgFilter
    ''' Call your code here....
    ''' Restore the message filter after calling Reflections. CoRegisterMessageFilter lMsgFilter, lMsgFilter
    End Sub
    
    

  • 이전 r - docker 및 splashr에 대한 Python 모듈 오류
  • 다음 python 3.x - 소켓 서버에 연결된 두 클라이언트간에 메시지를 교환하려면 어떻게해야합니까?