【问题标题】:How to close SAP pop-up windows with VBA?如何使用 VBA 关闭 SAP 弹出窗口?
【发布时间】:2019-06-25 08:01:55
【问题描述】:

我本来希望自动进行多次提取,除了当我运行宏时弹出窗口让我非常恼火,我可以通过按 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 窗口消失,因此它不是有效的解决方案

【问题讨论】:

  • 弹出窗口出现在哪一行之后?您似乎放错了Application.SendKeys "{Enter}"
  • @Nacrid 你好,它发生在以 (objSess...) 开头的脚本执行期间
  • 那么,最大化 SAP 窗口后会弹出一个窗口吗?或者在附加会话时?
  • 我在登录时有一个窗口,在脚本结束时告诉我我没有任何数据(我想点击进入以继续执行脚本)
  • 你能说得更具体点吗?什么窗户? SAP 窗口?

标签: excel vba sap-gui


【解决方案1】:

第一个弹出窗口是 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

将这段代码放在导致窗口弹出的代码行之后。

【讨论】:

    猜你喜欢
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多