【问题标题】:back to SAP initial screen from VBA从 VBA 返回 SAP 初始屏幕
【发布时间】:2019-05-07 06:52:47
【问题描述】:

我有一个 Excel 宏,它使用由内置 sap 脚本创建的 SAP 代码。它工作正常,但我需要在不同的表上多次执行这些步骤。我遇到的问题是我不能简单地触发第一步,因为当时给定屏幕的参考无效,首先我需要获取初始屏幕才能这样做,但我不知道该怎么做那个。

我尝试记录 SAP Gui 的“返回”动作,但这些动作似乎每次都不相同,我不能依赖它们。在 sap 相关网站上,我找到了如何引用屏幕,但我不知道如何在我的代码中使用它。 其中一种方法是: session.findById("wnd[0]").Name

Sub SimpleSAPExport()
' attach to sap  session
Set SapGuiAuto = GetObject("SAPGUI")  'Get the SAP GUI Scripting object 
Set SAPApp = SapGuiAuto.GetScriptingEngine 'Get the currently running SAP 
GUI Set SAPCon = SAPApp.Children(0) 
Set session = SAPCon.Children(0)
If Not IsObject(session) Then   MsgBox "nok"
End If
'start transactiom
session.FindById("wnd[0]/tbar[0]/okcd").Text = "BPMDG/UTL_BROWSER" 
session.FindById("wnd[0]/tbar[0]/btn[0]").Press 
session.FindById("wnd[0]").Maximize
session.FindById("wnd[0]/usr/ctxtP_TABNAM").Text = "ska1"
'.
'.
session.FindById("wnd[1]/usr/ctxtDY_PATH").Text = "c:\vba\sapgui\"   
session.FindById("wnd[1]/usr/ctxtDY_FILENAME").Text = "ska1-oa01.txt"
' would need to go start transaction-part

【问题讨论】:

    标签: excel vba sap-gui


    【解决方案1】:

    您可以尝试以下方法:

    ...
    session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nBPMDG/UTL_BROWSER" 
    session.FindById("wnd[0]/tbar[0]/btn[0]").Press 
    ...
    

    问候,脚本人

    【讨论】:

      猜你喜欢
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 2021-12-14
      • 2022-12-15
      • 2018-05-21
      相关资源
      最近更新 更多