通过EXCEL VBA 连接SAP系统后,导出打开的电子表格文件另存(不是系统自带的导出EXCEL表)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过EXCEL VBA 连接SAP系统后,导出打开的电子表格文件另存(不是系统自带的导出EXCEL表)相关的知识,希望对你有一定的参考价值。

正确的路径是清单--输出--电子表格,然后继续展现的电子表格中,然后另存,请教大侠,该如何编写,我属于菜鸟级的,只能通过本地文件导出(数据多时会错行),后附程序代码,请赐教!

session.findById("wnd[0]").maximize

session.findById("wnd[0]/tbar[0]/okcd").Text = "/Nksb1"

session.findById("wnd[0]").sendVKey 0

session.findById("wnd[0]/usr/ctxtKSTGR").Text = cbzx(i)

session.findById("wnd[0]/usr/ctxtKOAGR").Text = "f00"

session.findById("wnd[0]/usr/ctxtR_BUDAT-LOW").Text = gzqs

session.findById("wnd[0]/usr/ctxtR_BUDAT-HIGH").Text = gzjs

session.findById("wnd[0]/usr/ctxtP_DISVAR").Text = "/ZCL"

session.findById("wnd[0]/usr/ctxtP_DISVAR").SetFocus

session.findById("wnd[0]/usr/ctxtP_DISVAR").caretPosition = 2

session.findById("wnd[0]/usr/btnBUT1").press

session.findById("wnd[1]/usr/txtKAEP_SETT-MAXSEL").Text = "5000000"

session.findById("wnd[1]/usr/txtKAEP_SETT-MAXSEL").caretPosition = 6

session.findById("wnd[1]/tbar[0]/btn[0]").press

session.findById("wnd[0]/tbar[1]/btn[8]").press

session.findById("wnd[0]/mbar/menu[0]/menu[3]/menu[2]").Select

session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").Select

session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[1,0]").SetFocus

session.findById("wnd[1]/tbar[0]/btn[0]").press

session.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = cbzx(i) & ".xls" '文件名称

session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 9

session.findById("wnd[1]/tbar[0]/btn[0]").press
在线等待中...

没太看明白你的需求,是不是说,vba已经控制sap界面表单,提交后,导数数据为excel,然后你想打开那个excle,录制的时候无法办到是吗?
那确实是无法操控的,因为超过sap录制的范围了,sap只录制sap里面的操作。如果要操作接下来导出的excel文件,很简单,因为导入文件的路径和地址都是已知的,直接在vba中 Set ak = Workbooks.Open(wb, UpdateLinks:=0)打开这个导出的excel不就行了。
参考技术A 去年10月的时候,我做了一个不断向SAP输入条件,然后把结果导出excel文件的程序,用VBA结合C++写的。导出文件的时候,这些都不是SAP能控制的(由于我的程序需要上百次导出excel文件,所以必须自动化),需要调用Windows API才可以实现自动化,这一部分我就是用C++来进行操作的。如果有需要的话,可以借你参考一下。 参考技术B 你的问题搞定了吗

sap软件报表打开空白

如果SAP软件报表打开空白,可能是由于SAP软件的安装与配置不正确造成的,您可以尝试重新安装和配置SAP软件,确保正确的安装配置后再尝试打开报表。 参考技术A sap软件报表打开空白
答:关掉EXCEL,SAP这个输出界面 再单独去打开EXCEL, 选项--信任中心--信任中心设置--宏设置--信任对VBA工程对象模型的访问 设置
参考技术B 先关掉EXCEL,SAP这个输出界面
再单独去打开EXCEL, 选项--信任中心--信任中心设置--宏设置--信任对VBA工程对象模型的访问。

以上是关于通过EXCEL VBA 连接SAP系统后,导出打开的电子表格文件另存(不是系统自带的导出EXCEL表)的主要内容,如果未能解决你的问题,请参考以下文章

sap软件报表打开空白

SAP系统用EXCEL导出数据为啥会是文本怎么转换成数值

如何利用Python+系统剪贴板实现SAP报表数据高效导出

sap如何导出单张凭证

使用 Excel 宏从 SAP 中提取数据

通过 Access 2013 VBA 编辑后无法打开 Excel 2013 文件