我如何处理等待另一个应用程序(SAP)完成OLE操作?

问题描述 投票:2回答:3

我正在尝试使SAP中的流程自动化。

我记录了一系列过程,并将代码粘贴到宏表中。我让Excel使用以下命令读取VBA代码:

Dim SapGuiAuto As Object
Dim Application As Object
Dim Connection As Object
Dim Session As Object

Set SapGuiAuto = GetObject("SAPGUI")
Set Application = SapGuiAuto.GetScriptingEngine
Set Connection = Application.Children(0)
Set Session = Connection.Children(0)

对于SAP进行的一部分计算,这需要花费几分钟的时间,而在其中途,Excel会生成以下消息:enter image description here

我必须单击OK继续,然后它会不停地弹出,我必须做10到15次,这消除了自动化的问题。

在没有宏的情况下,SAP不会给我任何错误。

我尝试用]关闭它>

Application.DisplayAlerts = False

相反,它给了我:enter image description here

我搜索了网络和站点,但是几乎没有任何有用的信息,可能是因为我的问题太具体了。

一些其他信息:1.我的笔记本电脑无法使用,未经允许,我无法安装任何其他软件或对其进行更新。2.我尝试检查DDE的Excel选项,但是当我尝试运行脚本时,它仅给我一个错误。enter image description here

我的Excel版本是2013。

如何实现我能想到的三个解决方案之一:1.禁用OLE的弹出窗口2.使其每次出现时自动单击确定3.使Excel冻结并等待SAP执行其操作? (不知道这是否有意义。)尝试过Application.Wait,但没有成功

我正在尝试使SAP中的流程自动化。我记录了一系列过程并将代码粘贴到宏表中。我让Excel使用以下命令读取VBA代码:Dim SapGuiAuto As Object ...

excel vba sap
3个回答
1
投票

如果使用64位Microsoft Office,则应根据Declare Statement略微更改M_Delineshev提供的代码。尝试使用此版本:


1
投票

上面的Storax实际上提供了带有问题解决方案的另一个主题的链接。


0
投票

以下代码对我有用...

© www.soinside.com 2019 - 2024. All rights reserved.