第一次發問,請教版上各位神人。
最近因工作需求要寫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