新手求助:修改SAP VBA脚本将VBUK-VBELN数据导出至Excel
SAP自动化VBA代码修改:提取控件文本到Excel
要实现将SAP控件wnd[1]/usr/ctxtVBUK-VBELN内的文本复制到Excel,只需读取该控件的.Text属性并赋值到指定单元格即可。以下是修改后的完整代码:
Sub invoicenumber1() Dim SAPGUIAuto As Object Dim objGui As Object Dim objConn As Object Dim session As Object Dim selectedcountry As String Dim invoiceNumber As String ' 新增变量存储提取的文本 Set SAPGUIAuto = GetObject("SAPGUI") Set objGui = SAPGUIAuto.GetScriptingEngine Set objConn = objGui.Children(0) Set session = objConn.Children(0) selectedcountry = ActiveWorkbook.ActiveSheet.Range("D2").Value session.findById("wnd[0]").maximize session.findById("wnd[0]/tbar[0]/okcd").Text = "/nvl02" session.findById("wnd[0]").sendVKey 0 session.findById("wnd[0]/usr/ctxtLIKP-VBELN").Text = selectedcountry session.findById("wnd[0]/usr/ctxtLIKP-VBELN").caretPosition = 8 session.findById("wnd[0]/tbar[1]/btn[30]").press session.findById("wnd[0]/usr/shell/shellcont[1]/shell[0]").pressButton "&FIND" session.findById("wnd[1]/usr/txtLVC_S_SEA-STRING").Text = "invoice" session.findById("wnd[1]/usr/txtLVC_S_SEA-STRING").caretPosition = 7 session.findById("wnd[1]/tbar[0]/btn[0]").press session.findById("wnd[1]/tbar[0]/btn[0]").press session.findById("wnd[1]/tbar[0]/btn[0]").press session.findById("wnd[0]/tbar[1]/btn[18]").press ' 读取SAP控件内的文本内容 invoiceNumber = session.findById("wnd[1]/usr/ctxtVBUK-VBELN").Text ' 将文本写入Excel指定单元格(示例为E2,可按需修改) ActiveWorkbook.ActiveSheet.Range("E2").Value = invoiceNumber End Sub
修改说明:
- 新增
invoiceNumber变量用于暂存从SAP控件读取的文本; - 通过
.Text属性获取目标控件的内容; - 将获取到的文本赋值到Excel的目标单元格(示例为
E2,可根据需求调整单元格位置)。
注意事项:
- 确保SAP已启用脚本录制与回放功能;
- 运行代码时需保持SAP处于登录且激活状态;
- 若SAP控件路径或名称变更,需同步调整
findById中的参数。
内容的提问来源于stack exchange,提问作者venkatesh
相关产品推荐
相关产品推荐

