打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
玩点你没见过的Excel神技:用VBA控制SAP厉害了!


今天要介绍的知识就是用VBA控制SAP。玩儿Excel的公众号有很多,但是涉及到这个知识的Excel公众号,大概还没有,因为会VBA的人不一定会SAP,会SAP的人不一定会VBA,既会VBA又会SAP的人不一定开了公众号。如果有这方面的专业人士,请留言告诉我,我们也好交流一下。

SAP又是个什么东西?不知道的小伙伴请看以下百度出来的信息。

简单点概括一下,SAP就是最大的业务软件公司,大部分世界500强公司都在用,总之很NB~

用VBA控制SAP,这要得益于SAP支持VB Script。SAP可以将屏幕操作记录下来,转换成VB Script代码。如果重新执行一遍录制的脚本,就会将刚才录制的操作再重复操作一遍,就跟放电影似的。对于固定的、复杂的操作,我们可以录下来,下次只要双击脚本就可以自动执行了,不需要再一步一步地操作了。但是这也只能算是低阶玩儿法,因为大部分情况下,在往SAP录入内容时,具体内容都不一样。所以我们的目标是 -- 批量操作。

下面介绍的也算是入门知识,算是抛砖引玉吧!但是了解了这些之后,就可以开始尝试制作批量录入的程序了。

1录制脚本

点击以下菜单中的“Script Recording and Playback”。

弹出一个像录音机一样的对话框,点击红色按钮就开始录制,点击方块按钮就结束录制,点击绿色三角按钮则运行录制的脚本,点击“More”按钮,则显示脚本保存的选项,比如保存路径等。

2将代码移植到Excel

使用记事本打开录制好的一个脚本文件,脚本开头通常显示如下。

把这段代码直接复制到Excel还不能使用,因为里面的application对象跟Excel对象名称Application重复了,我们需要稍加修改,将application替换成一个自定义的名称,比如applications、objSAP等等,自己定义一个就可以了。

下面这一句是在命令框中输入transaction code,比如下面输入/nmb51命令。

session.findById('wnd[0]/tbar[0]/okcd').text = '/nmb51'

下面是一个更改后的代码示例。

注意以上代码可以放到模块中。关于这方面的基础知识,请戳以下链接。

不懂这些基础知识,再厉害的代码你也不会用!

3按回车键

录制代码中常见的这句sendVkey 0就表示按回车键。

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

4获取状态栏消息

下面这句可以获取状态栏的消息文本

session.ActiveWindow.findByName('sbar', 'GuiStatusbar').Text

下面这句可以获取状态栏的消息类型

session.ActiveWindow.findByName('sbar', 'GuiStatusbar').MessageType

MessageType的值如下。

ValueDescription
SSuccess
WWarning
EError
AAbort
IInformation

以上语句都可以赋值给一个变量。在循环处理过程中,可能会遇到意料之外的情况,这时我们就可以通过系统消息来做一个判断。

5在输入框中填入内容

录制代码中类似如下文本表示在文本框中填入内容。

session.findById('wnd[0]/usr/ctxtMSEG-MATNR').Text = '具体内容'

session.findById('wnd[0]/usr/txtMSEG-ERFMG').Text='具体内容'

6通过循环实现批量录入

了解了以上代码的含义,我们可以在VBA中通过For... Next循环等获取Excel表格的内容并操作SAP。我相信能看到这里的人大概也懂一些VBA,并且也是SAP用户,所以具体实现方法我就不再举例赘述。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
录制脚本软件
使用VBA更新标题栏/状态栏
Excel VBA控制SAP实现办公自动化
显示隐藏excel状态栏图标(vba)
Excel VBA工作薄 6.5到时会自动消失的提示窗口 不影响程序执行
怎样在Excel中使用python脚本
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服