[英]How to close SAP pop-up windows with VBA?
我本來希望自動進行幾次提取,除了當我運行宏時,我有彈出窗口讓我非常惱火,我可以通過按 Enter 使它們消失。
Public Sub RunGUIScript()
Dim W_Ret As Boolean
Dim Société As String
Sheets("Extraction").Select
Société = Range("b9")
Application.SendKeys "{Enter}"
' Connect to SAP
W_Ret = Attach_Session
If Not W_Ret Then
Exit Sub
End If
On Error GoTo myerr
objSess.findById("wnd[0]").maximize
objSess.findById("wnd[0]/tbar[0]/okcd").Text = "S_ALR_87012039"
objSess.findById("wnd[0]/tbar[0]/btn[0]").press
objSess.findById("wnd[0]/usr/radSUMMB").Select
objSess.findById("wnd[0]/usr/chkP_GRID").Selected = True
[...]
Exit Sub
myerr:
MsgBox "Error occured while retrieving data", vbCritical + vbOKOnly
End Sub
“Application.SendKeys”{Enter}”功能不會使我的 SAP 窗口消失,因此它不是有效的解決方案
第一個彈出窗口是 SAP 告訴您腳本正在嘗試訪問 SAP。 您可以在 SAP 設置中禁用該信息。
轉到選項 -> 輔助功能和腳本 -> 腳本
然后從“腳本附加到 SAP GUI 時通知”和“腳本打開連接時通知”中刪除復選標記
可以使用以下行關閉第二個彈出窗口:
objSess.FindById("wnd[1]/tbar[0]/btn[0]").Press
這將按下彈出窗口中的確定按鈕。
如果你想知道窗口是否彈出,你可以這樣做:
On Error Resume Next
objSess.FindById("wnd[1]/tbar[0]/btn[0]").Press
If Err.Number = 0 Then
'Button was pressed
End If
On Error GoTo 0
將這段代碼放在導致窗口彈出的代碼行之后。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.