iT邦幫忙

0

用VBA跑SAP腳本(vbs)匯出問題

第一次發問,請教版上各位神人。

最近因工作需求要寫SAP自動跑報表遇到一些問題
在跑腳本時最後一步需要匯出成EXCEL的表格,預設是會彈出另存新檔的視窗

但vba跑到這就不會動了,過一陣子會跳提示"EXCEL等待OLE",需要手動去跳出的另存視窗 選擇路徑和設定名稱按確定。

按確定之後,會自動開啟檔案並跳出提示"格式可能會遺失是否要開啟"
按否也會跳出一個空白活頁簿。

希望能夠達成的功能是:
1.能夠在VBA設定路徑和檔名直接匯出每一個檔案
2.匯出後不要開啟活頁簿,繼續跑下一段script

謝謝各位。

以下是VBA腳本

    Dim SAPapp As Object
    Dim SAPconn As Object
    Dim SAPsession As Object
    Dim SapGuiAuto As Object
    Dim WshShell As Object
  
    Shell "C:\Program Files\SAP\FrontEnd\SAPgui\saplogon.exe", 4
    Set WshShell = CreateObject("WScript.Shell")

    Do Until WshShell.AppActivate("SAP Logon ")
        Application.Wait Now + TimeValue("0:00:01")
    Loop

    Set WshShell = Nothing
    Set SapGuiAuto = GetObject("SAPGUI")
    Set SAPapp = SapGuiAuto.GetScriptingEngine
    Set SAPconn = SAPapp.Openconnection("ModuleName", True)
    Set SAPsession = SAPconn.Children(0)
    
    '正常查詢的script----
    ...
    '正常查詢的script----
    
    '這是 選擇表單>匯出 的步驟
    SAPsession.findById("wnd[0]/mbar/menu[0]/menu[1]/menu[1]").Select
    '這裡會卡住,過一段時間跳出Excel在等待OLE
    SAPsession.findById("wnd[1]/tbar[0]/btn[0]").press
    SAPsession.findById("wnd[1]/usr/ctxtDY_PATH").Text = "路徑"
    SAPsession.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = "檔名"
    SAPsession.findById("wnd[1]/tbar[0]/btn[0]").press

尚未有邦友回答

立即登入回答