使用VBA登录SAP

2020-09-07 21:44发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好社区,

我想使用脚本通过Excel从SAP读取数据。 我发现以下代码,但未运行。 它不会跳到第一个If语句中,为什么不呢?

如果我注释掉第一个If语句,则会得到:

运行时错误'-2147221020(800401e4)'自动化错误语法无效

非常感谢。

公共SAPguiAPP作为GuiApplication
 公共连接为GuiConnection
 作为GuiSession的公开会议

 公开子测试()

 如果不是IsObject(SAPguiAPP)然后
 设置SapGuiAuto = GetObject(" SAPGUI")
 设置SAPguiAPP = SapGuiAuto.GetScriptingEngine
 万一

 如果不是IsObject(Connection)然后
 设置oConnection = SAPguiAPP.Children(0)
 万一

 如果不是IsObject(Session)然后
 设置oSession = oConnection.Children(0)
 万一

 如果IsObject(WScript)然后
 WScript.ConnectObject oSession,"打开"
 WScript.ConnectObject SAPguiAPP,"打开"
 万一

 oSession.FindById(" wnd [0]")。最大化
 oSession.FindById(" wnd [0]")。resizeWorkingPane 109,26,False
 oSession.FindById(" wnd [0]/tbar [0]/okcd")。Text =" ca03"

 设置会话=无
 设置连接=无
 设置SAPguiAPP = Nothing

 结束子
 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好社区,

我想使用脚本通过Excel从SAP读取数据。 我发现以下代码,但未运行。 它不会跳到第一个If语句中,为什么不呢?

如果我注释掉第一个If语句,则会得到:

运行时错误'-2147221020(800401e4)'自动化错误语法无效

非常感谢。

公共SAPguiAPP作为GuiApplication
 公共连接为GuiConnection
 作为GuiSession的公开会议

 公开子测试()

 如果不是IsObject(SAPguiAPP)然后
 设置SapGuiAuto = GetObject(" SAPGUI")
 设置SAPguiAPP = SapGuiAuto.GetScriptingEngine
 万一

 如果不是IsObject(Connection)然后
 设置oConnection = SAPguiAPP.Children(0)
 万一

 如果不是IsObject(Session)然后
 设置oSession = oConnection.Children(0)
 万一

 如果IsObject(WScript)然后
 WScript.ConnectObject oSession,"打开"
 WScript.ConnectObject SAPguiAPP,"打开"
 万一

 oSession.FindById(" wnd [0]")。最大化
 oSession.FindById(" wnd [0]")。resizeWorkingPane 109,26,False
 oSession.FindById(" wnd [0]/tbar [0]/okcd")。Text =" ca03"

 设置会话=无
 设置连接=无
 设置SAPguiAPP = Nothing

 结束子
 
付费偷看设置
发送
4条回答
Nan4612
1楼 · 2020-09-07 22:03.采纳回答

Hello Lars,

尝试以下代码。

将公共SAPguiAPP作为GuiApplication
 公共连接为GuiConnection
 作为GuiSession的公开会议

 公开子测试()

   如果没有SAPguiAPP,那么
     设置SapGuiAuto = GetObject(" SAPGUI")
     设置SAPguiAPP = SapGuiAuto.GetScriptingEngine
   万一

   如果没有任何连接,则
     设置oConnection = SAPguiAPP.Children(0)
   万一

   如果oSession无效
     设置oSession = oConnection.Children(0)
   万一

   oSession.FindById(" wnd [0]")。最大化
   oSession.FindById(" wnd [0]")。resizeWorkingPane 109,26,False
   oSession.FindById(" wnd [0]/tbar [0]/okcd")。Text =" ca03"

   设置oSession = Nothing
   设置oConnection = Nothing
   设置SAPguiAPP = Nothing

 结束子
 

让我们知道您的结果。

干杯
斯特凡

木偶小白
2楼-- · 2020-09-07 22:18

你好拉尔斯,

你是对的。

干杯
Stefan

追夢秋陽
3楼-- · 2020-09-07 22:17

感谢Stefan,它正在工作。

但是下面的" o"对吗?

设置oSession = Nothing
设置oConnection = Nothing
设置SAPguiAPP = Nothing

问候

Lars

SAP小菜
4楼-- · 2020-09-07 22:06

很好,是否可以通过这种方式在VBA中自动执行操作(如CRM业务合作伙伴创建等业务流程)?

我们通过VBA自动化了测试数据准备。 这个很有趣。 分享更多输入。

一周热门 更多>