Excel在运行SAP脚本时等待OLE操作

2020-09-20 08:51发布

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

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


大家好,

我刚接触SAP脚本,但是已经对VBA有一定的经验。 我在尝试针对我当前职位的SAP中的流程自动化时遇到以下问题。 因此,我正在记录一系列过程,将代码粘贴到宏表中,并使Excell使用以下命令读取VBS代码:

 Dim SapGuiAuto AsObject
 昏暗的应用程序AsObject
 暗淡连接AsObject
 昏暗会话AsObject

 设置SapGuiAuto = GetObject(" SAPGUI")
 设置应用程序= SapGuiAuto.GetScriptingEngine
 设置连接= Application.Children(0)
 设置会话= Connection.Children(0)

所以一切都很好,但是对于其中一部分,SAP进行了大量计算,这需要花费几分钟,而在中间,Excel会生成消息:

所以我必须单击OK才能继续,这很烦人,因为然后它不停地弹出,我必须像执行10-15次一样才能达到目标,这消除了自动化的重点 。 在没有宏的情况下,SAP不会给我任何错误。 我尝试用

将其关闭

Application.DisplayAlerts = False,但它不起作用,而是给我:

我搜索了网络和站点,但是几乎没有任何有用的信息,可能是因为我的问题是特定的。 一些其他信息:

1。 我的笔记本电脑正在工作,未经允许,我无法安装任何其他软件或对其进行更新,因此如果您有此想法,请给我其他解决方案。

2。我尝试检查DDE的Excel选项,但是当我尝试运行脚本时,它只会给我一个错误:

3。 Excel是2013,SAP是-ABAB。

因此,有人可以帮助我实现我能想到的三个解决方案之一:

1。 禁用OLE的弹出窗口

2。 使其每次消失时自动单击"确定"

3。 使Excel冻结并等待SAP执行其操作? (不知道这是否有意义。)-BTW,尝试过Application.Wait,但没有成功

我真的希望有人能在这里帮助我

先谢谢您

Mihail

ole.jpg (6.6 kB)

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

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


大家好,

我刚接触SAP脚本,但是已经对VBA有一定的经验。 我在尝试针对我当前职位的SAP中的流程自动化时遇到以下问题。 因此,我正在记录一系列过程,将代码粘贴到宏表中,并使Excell使用以下命令读取VBS代码:

 Dim SapGuiAuto AsObject
 昏暗的应用程序AsObject
 暗淡连接AsObject
 昏暗会话AsObject

 设置SapGuiAuto = GetObject(" SAPGUI")
 设置应用程序= SapGuiAuto.GetScriptingEngine
 设置连接= Application.Children(0)
 设置会话= Connection.Children(0)

所以一切都很好,但是对于其中一部分,SAP进行了大量计算,这需要花费几分钟,而在中间,Excel会生成消息:

所以我必须单击OK才能继续,这很烦人,因为然后它不停地弹出,我必须像执行10-15次一样才能达到目标,这消除了自动化的重点 。 在没有宏的情况下,SAP不会给我任何错误。 我尝试用

将其关闭

Application.DisplayAlerts = False,但它不起作用,而是给我:

我搜索了网络和站点,但是几乎没有任何有用的信息,可能是因为我的问题是特定的。 一些其他信息:

1。 我的笔记本电脑正在工作,未经允许,我无法安装任何其他软件或对其进行更新,因此如果您有此想法,请给我其他解决方案。

2。我尝试检查DDE的Excel选项,但是当我尝试运行脚本时,它只会给我一个错误:

3。 Excel是2013,SAP是-ABAB。

因此,有人可以帮助我实现我能想到的三个解决方案之一:

1。 禁用OLE的弹出窗口

2。 使其每次消失时自动单击"确定"

3。 使Excel冻结并等待SAP执行其操作? (不知道这是否有意义。)-BTW,尝试过Application.Wait,但没有成功

我真的希望有人能在这里帮助我

先谢谢您

Mihail

ole.jpg (6.6 kB)
付费偷看设置
发送
4条回答
绿领巾童鞋
1楼 · 2020-09-20 09:32.采纳回答

大家好,

我实际上在Stackoverflow中找到了一个很好的解决方案。 因此,对于任何有类似问题的人:

https://stackoverflow.com/questions/50142068/how-can-i-skip-waiting-for-ole-action-sap?noredirect=1#comment87472196_50142068


me_for_i
2楼-- · 2020-09-20 09:19

如果要将录制的脚本移植到VBA,最好完全跳过前14行,并使用我上面推荐的行。 当然,您可以将录制的脚本的其余行添加到其中。

shere_lin
3楼-- · 2020-09-20 09:15

您好,Mihail,

"应用程序"在VBA中是受保护的单词。 您可以改用以下内容:

 Set SapGuiAuto = GetObject(" SAPGUI")'获取SAP GUI脚本对象
 设置SAPApp = SapGuiAuto.GetScriptingEngine'获取当前正在运行的SAP GUI
 Set SAPCon = SAPApp.Children(0)'获取当前已连接的第一个系统
 设置会话= SAPCon.Children(0)'获取该连接上的第一个会话(窗口)
 ... 

此致

ScriptMan

SAP砖家
4楼-- · 2020-09-20 09:06

嗨,ScriptMan,

感谢您的建议,但是我无法删除应用程序的声明。 当我从录制的脚本中粘贴代码时,"应用程序"一词将嵌入代码中:

如果不是IsObject(Application),则设置SapGuiAuto = GetObject(" SAPGUI")设置Application = SapGuiAuto.GetScriptingEngine

还是我应该对该代码进行其他更改?

一周热门 更多>