[英]Excel VBA pulling data from SAP NetWeaver
如何使用VBA宏将数据从SAP NetWeaver提取到Excel中?
我在SAP系统中有数据,可以通过SAP GUI通过一些不同的事务进行访问。 我需要每天提取这些数据,然后将其格式化为Excel电子表格和报告。 手动提取此数据非常耗时且容易出错。
我没有开发人员或系统支持。 我必须能够以非特权用户身份自己进行操作。
这是从我的答案中复制过来的: https : //stackoverflow.com/a/19456656/2250183
这完全取决于您对SAP系统的访问权限。 导出数据的ABAP程序和/或宏可以调用以直接获取数据或由SAP创建文件的RFC可能是最好的。
但是 ,通常来说,寻找这种答案的人们正在寻找一种即时解决方案,该解决方案不需要IT部门花费数月的时间来定制SAP系统。
在这种情况下,您可能要使用SAP GUI脚本。 SAP GUI脚本允许您以与自动化Excel几乎相同的方式来自动化Windows SAP GUI。 实际上,您可以直接从Excel宏调用SAP GUI。 在这里阅读更多内容。 SAP GUI具有类似于Excel的宏记录工具。 它在VBScript中记录了与Excel VBA几乎相同的宏,通常可以直接将其复制并粘贴到Excel宏中。
这是一个基于我可以访问的SAP系统的简单示例。
Public Sub SimpleSAPExport()
Set SapGuiAuto = GetObject("SAPGUI") 'Get the SAP GUI Scripting object
Set SAPApp = SapGuiAuto.GetScriptingEngine 'Get the currently running SAP GUI
Set SAPCon = SAPApp.Children(0) 'Get the first system that is currently connected
Set session = SAPCon.Children(0) 'Get the first session (window) on that connection
'Start the transaction to view a table
session.StartTransaction "SE16"
'Select table T001
session.findById("wnd[0]/usr/ctxtDATABROWSE-TABLENAME").Text = "T001"
session.findById("wnd[0]/tbar[1]/btn[7]").Press
'Set our selection criteria
session.findById("wnd[0]/usr/txtMAX_SEL").text = "2"
session.findById("wnd[0]/tbar[1]/btn[8]").press
'Click the export to file button
session.findById("wnd[0]/tbar[1]/btn[45]").press
'Choose the export format
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").select
session.findById("wnd[1]/tbar[0]/btn[0]").press
'Choose the export filename
session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "test.txt"
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "C:\Temp\"
'Export the file
session.findById("wnd[1]/tbar[0]/btn[0]").press
End Sub
为了帮助查找诸如wnd[1]/tbar[0]/btn[0]
之类的元素的名称,您可以使用脚本记录。 单击自定义本地布局按钮,它可能看起来像这样:
然后找到“脚本记录和播放”菜单项。
在“ More
按钮中,您可以查看/更改VB脚本记录到的文件。 输出格式有点混乱,它记录诸如选择文本,在文本字段内单击等内容。
如果直接复制到VBA宏中,提供的脚本应该可以工作。 它使用后期绑定, Set SapGuiAuto = GetObject("SAPGUI")
定义了SapGuiAuto对象。
但是,如果要使用早期绑定,以便VBA编辑器可以显示所使用对象的属性和方法,则需要在SAP GUI安装文件夹中添加对sapfewse.ocx
的引用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.