【问题标题】:Trouble Connecting to SAP Through VBA in Excel Error 614在 Excel 错误 614 中无法通过 VBA 连接到 SAP
【发布时间】:2020-10-20 21:41:29
【问题描述】:

我正在尝试运行一个基本代码,我在这里和其他地方找到了很多地方,这些地方应该打开 SAP、输入命令并执行。

我已经通过 VBA 打开 SAP,但我在下面的行 Set Connection = Appl.Openconnection("1) PRD", True).Children(0) 收到运行时错误 614,关于设置“会话”,如图所示。

运行时错误 614:集合的枚举器找不到具有指定索引的元素

Private Sub CommandButton1_Click()

Dim SapGui As Object
Dim Connection As Object
Dim Appl As Object
Dim session As Object
Dim WshShell As Object

'Of course change for your file directory
Shell "C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe", 4
Set WshShell = CreateObject("WScript.Shell")

Do Until WshShell.AppActivate("SAP Logon ")
    Application.Wait Now + TimeValue("0:00:01")
Loop

Set WshShell = Nothing

Set SapGui = GetObject("SAPGUI")
Set Appl = SapGui.GetScriptingEngine
Set Connection = Appl.Openconnection("1) PRD", True).Children(0)
Set session = Connection.Children(0)


session.findById("wnd[0]").Maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "cv03n"
session.findById("wnd[0]").sendVKey 0 'ENTER



'and there goes your code in SAP

End Sub

【问题讨论】:

  • 如果你把Debug.Print Connection.Children.Count放在Set session = Connection.Children(0)之前,它会在即时窗口中返回什么?

标签: excel vba sap-gui


【解决方案1】:

请检查您的 SAP 连接的名称。根据下面的示例,相应的命令如下所示:

...
Set Connection = Appl.openconnection("DAL_ EHP5")
Set session = Connection.Children(0)
...

此外,您可能需要先登录 SAP。

例如:

session.findById("wnd[0]").maximize
session.findById("wnd[0]/usr/txtRSYST-MANDT").Text = Mandant
session.findById("wnd[0]/usr/txtRSYST-BNAME").Text = Name
session.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = PW
session.findById("wnd[0]").sendVKey 0

问候,脚本人

【讨论】:

  • 我在登录时尝试过此操作,但我得到了同样的错误,我的“1) PRD”工作正常,因为它在运行 VBA 代码后将我登录到 SAP。它只是无法在程序中执行命令 - 目前不需要密码输入,所以我认为这不是问题。
  • 在简化为您的建议后查看调试屏幕:DEBUG 2
  • Saplogon.exe 仅在您尚未登录 SAP 时才需要。原则上,您必须区分两种不同的状态: 1. 您已经登录到 SAP 或 2. 您还没有登录到 SAP。美术是将这两种状态存储在登录脚本中。你现在是什么状态?
【解决方案2】:

如果 SAP 系统配置为阻止使用 SAP GUI 脚本执行脚本,则访问 GuiConnection 对象时可能会发生此错误。

请 SAP 管理员启用脚本(配置文件参数 sapgui/user_scripting 设置为 TRUE;其他可能性在 SAP KBA SAP Knowledge Base Article 2296251 - How can SAP GUI Scripting be enabled? 中描述)。

【讨论】:

    猜你喜欢
    • 2021-04-26
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多