玩点你没见过的Excel神技:用VBA控制SAP厉害了! 下载本文

玩点你没见过的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 04获取状态栏消息下面这句可以获取状态栏的消息文本session.ActiveWindow.findByName('sbar',

'GuiStatusbar').Text下面这句可以获取状态栏的消息类型session.ActiveWindow.findByName('sbar',

'GuiStatusbar').MessageTypeMessageType的值如下。ValueDescriptionSSuccessWWarningEErrorAAbortIInformation