【发布时间】:2019-07-05 00:59:32
【问题描述】:
我遇到了错误:
“对象变量或未设置块变量”
一行
session.findById("wnd[0]").maximize
我在网上搜索,但错误在不同的行。
Sub RunScript()
Dim session As Object
If Not IsObject(Sapplication) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set Sapplication = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(Connection) Then
Set Connection = Sapplication.Children(0)
End If
If Not IsObject(session) Then
Set session = Connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject Sapplication, "on"
End If
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "/NME21N"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[0]/btn[12]").press
End Sub
我进去了,发现connection是空的,报错
“集合的枚举器找不到具有特定索引的元素”
【问题讨论】:
-
我总是使用相同的行来最大化窗口,所以不要认为这会是一个特别的问题。你在设置会话对象吗?你能观察会话对象吗?当它出错时,你可以看到它确实存在。无论您在哪个屏幕上,我还使用 session.StartTransaction “ME21N” 开始新事务。
-
所以我尝试进入,我发现连接是空的,它给出了这样的错误“集合的枚举器找不到具有特定索引的元素”
-
因此错误出现在您尝试捕获会话对象的第一部分。运行宏时您的 SAP 窗口是否已经打开?
-
是的,它在我运行宏时打开。我也在 SAP 中启用了脚本。
-
你好,我想问一下,有没有可能是RZ11引起了所有这些问题?因为我无权访问 RZ11,因此我无法检查脚本选项。