在运行我的VBA代码时,它打开了所有正确的功能,但当涉及到利用导出功能时-当用VBA按导出按钮时,下拉菜单不可用,而当用鼠标单击导出按钮时,下拉菜单出现。
由于它无法选择上下文菜单项-鉴于下拉菜单不出现-它给出了以下错误:
运行时错误“619”:无法按ID找到控件。
有没有办法让导出按钮出现上下文菜单?
Sub SAPconn()
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 'keeps looping the wait time until SAP is successfully opened
Set WshShell = Nothing
Set SapGuiAuto = GetObject("SAPGUI") 'open SAP
Set app = SapGuiAuto.GetScriptingEngine 'use the VBScripting ability in SAP
Set connection = app.Openconnection("Production", True) 'open the specific SAP connection
Set session = connection.Children(0)
ThisWorkbook.Activate 'ensure we are getting the information from this specific workbook for the next portion of code
With session
.findById("wnd[0]/usr/txtRSYST-BNAME").Text = Range("c2").Formula 'username
.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = Range("c3").Value 'password
.findById("wnd[0]/usr/txtRSYST-LANGU").Text = "EN" 'language
.findById("wnd[0]").maximize
.findById("wnd[0]").sendVKey 0 'ENTER to log in
end with
On Error GoTo 0
With session
.findById("wnd[0]").maximize
.findById("wnd[0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont[0]/shell").expandNode "Root"
.findById("wnd[0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont[0]/shell").expandNode "0000000007"
.findById("wnd[0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont[0]/shell").expandNode "0000000039"
.findById("wnd[0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont[0]/shell").expandNode "0000000040"
.findById("wnd[0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont[0]/shell").selectedNode = "0000000041"
.findById("wnd[0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont[0]/shell").topNode = "F00007"
.findById("wnd[0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont[0]/shell").doubleClickNode "0000000041"
.findById("wnd[0]/usr/cmbP_ZINPST").key = "F"
.findById("wnd[0]/usr/cmbP_ZINPST").setFocus
.findById("wnd[0]/tbar[1]/btn[8]").press
.findById("wnd[0]").maximize
.findById("wnd[0]").maximize
.findById("wnd[0]/usr/cntlCONT1/shellcont/shell").PressToolbarContextButton ("&MB_EXPORT")
.findById("wnd[0]/usr/cntlCONT1/shellcont/shell").selectContextMenuItem "&XXL"
.findById("wnd[0]").sendVKey 0
End With
End Sub
这段视频中展示了代码的示例:video
我已在SAP GUI中启用脚本。我已在Excel宏信任设置中激活对VBA项目对象模型的信任访问。
2条答案
按热度按时间pbossiut1#
谢谢你@storax的帮助,确定这可能是一个SAPGUI设置错误,这使我开始寻找工具箱选择的解决方案。
“运行时错误'619':无法按ID找到控件。”
因为上下文菜单项没有打开以便被找到。
等待时间为SAP gui系统提供了打开所需的时间。
nxagd54h2#
您需要手动打开上下文菜单
尝试使用
在尝试选择上下文菜单项之前打开上下文菜单。
这应该使它这样的上下文菜单出现