SAP GUI数据导出VBScript嵌入Excel VBA执行后生成空白文档问题求助
SAP GUI数据导出VBA宏:文件未保存问题求助
我有个用于SAP GUI数据导出的VBScript,单独运行或者在SAP里执行时都能正常生成包含所需数据的Excel工作表。但我把它集成到Excel的VBA子程序后遇到了麻烦——宏能完整跑完所有SAP操作,全程没报错,可最后只是打开了目标Excel文件,数据根本没保存进去。之前文件有旧数据没注意,清空后才发现完全没被覆盖,而且连个错误提示都没有,实在搞不懂哪里出问题了,求各位帮忙看看!
对应的VBA代码如下:
Public Sub Connect_To_SAP() 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 End If Set aw = SAP_session.ActiveWindow() aw.findById("wnd[0]").Maximize On Error GoTo Err_Description SAP_session.findById("wnd[0]").Maximize SAP_session.findById("wnd[0]/tbar[0]/btn[12]").press SAP_session.findById("wnd[0]/tbar[0]/btn[12]").press SAP_session.findById("wnd[0]/tbar[0]/btn[12]").press SAP_session.findById("wnd[0]/tbar[0]/okcd").Text = "Execution" SAP_session.findById("wnd[0]/tbar[0]/btn[0]").press SAP_session.findById("wnd[0]/tbar[1]/btn[8]").press SAP_session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").setCurrentCell -1, "" SAP_session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").SelectAll SAP_session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").contextMenu SAP_session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectContextMenuItem "&XXL" SAP_session.findById("wnd[1]/tbar[0]/btn[0]").press SAP_session.findById("wnd[1]/usr/ctxtDY_PATH").Text = "C:\Users\%UserName%\Documents\SAP\SAP GUI\" SAP_session.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = "Test.XLSX" SAP_session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 8 SAP_session.findById("wnd[1]/tbar[0]/btn[11]").press Exit Sub Err_Description: MsgBox ("The program has generated an error;" & Chr(13) & _ "the reason for this error is unknown."), vbInformation Exit Sub Err_NoSAP: MsgBox ("You don't have SAP open or " & Chr(13) & _ "scripting has been disabled."), vbInformation Exit Sub Err_TooManySAP: MsgBox ("You must only have one SAP session open. " & Chr(13) & _ "Please close all other open SAP sessions."), vbInformation Exit Sub End Sub
内容的提问来源于stack exchange,提问作者Robin
相关产品推荐
相关产品推荐

