[英]SAP GUI Scripting Error, "The Enumerator of the collection cannot find an element with the specified index."
幾周前,我通過 SAP 的內置 GUI 腳本功能生成了一個腳本,然后將 vba 放入一個 excel 文檔中並將其附加到一個按鈕上。
這在幾周內工作得很好,但是現在當我按下按鈕時,我得到了這個錯誤: "The enumerator of the collection cannot find en element with the specified index."
在說Set session = Connection.Children(0)
的行上,這是一段代碼
If Not IsObject(Sap_Application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set Sap_Application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(Connection) Then
Set Connection = Sap_Application.Children(0)
End If
If Not IsObject(session) Then
Set session = Connection.Children(0) 'This is the line that causes the error
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject Sap_Application, "on"
End If
我打開了 SAP 並已登錄,並且代碼片段中的所有代碼都是由 SAP gui 腳本生成的。
我嘗試了一些我在網上看到的解決方案(比如將我的 sap 安裝文件夾中的一些 ocx 文件添加到我的 excel 插件中),但似乎沒有任何效果。
我想知道這里是否有人遇到過類似的問題,並且知道如何在我的 vba 中成功打開 SAP 會話。
編輯評論:
當我檢查連接對象時,這就是我所看到的。 看起來兒童長度為0。
遇到了同樣的問題並找到了這個線程,所以我用對我有用的解決方案來恢復它:
腳本編寫可能是 deativated。 sapgui/user_scripting 必須設置為 true
我認為我安裝的其他東西(或者甚至我公司的更新腳本)搞砸了安裝 SAP 時安裝的 vba 支持。
重新安裝 SAP Logon 應用程序修復了我的問題
(如果其他人給出了更好的理由來解釋為什么會發生這種情況,我會接受這個答案)
我知道它很舊,但可能會幫助別人。 我不知道這是什么原因,我的腳本突然開始出現問題。 我記錄了一個新操作以查看 SAP 將為這些操作編寫什么(因為該部分代碼是連接的標准)。 同樣的代碼,同樣的問題。
修復(或至少是暫時的):更改正在搜索的孩子的數量。 以前的代碼:
*Set Connection = Sap_Application.Children(0)*
新代碼:
*Set Connection = Sap_Application.Children(1)*
不確定有什么區別,我知道如果您還更改此行中的數字:
*Set session = Connection.Children(0) 'This is the line that causes the error*
執行發生在第二個會話中,如果你改變了這個,也必須改變前一行代碼。
希望有幫助!
請檢查是否啟用了腳本。 當您啟用客戶端級腳本時,如果服務器重新啟動,它會自動重置。 您可能在沙盒或演示系統上比生產盒更常遇到此問題 :-)
"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.