excel 如何使用VBA关闭SAP弹出窗口?

ff29svar  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(637)

我本来想有自动提取几个,除了当我运行的宏,我有弹出窗口,惹恼了我可怕的,我可以让他们消失按回车。

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窗口消失,因此它不是有效的解决方案

inkz8wg9

inkz8wg91#

第一个弹出窗口是SAP告诉您,一个脚本正在尝试访问SAP。您可以在SAP设置中禁用该信息。
进入选项->可访问性和脚本->脚本
然后删除“当脚本附加到SAP GUI时通知”和“当脚本打开连接时通知”的复选标记

第二个弹出窗口可以用这行关闭:

objSess.FindById("wnd[1]/tbar[0]/btn[0]").Press

这将按下弹出窗口中的Ok按钮。
如果你想知道窗口是否弹出,你可以这样做:

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

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

相关问题