You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 02:04:11