我有一个Excel宏,它使用由内置的SAP脚本创建的SAP代码。它工作正常,但我需要在不同的表上多次执行这些步骤。我的问题是我不能简单地触发第一步,因为那时给定屏幕的参考无效,首先我需要获取初始屏幕才能这样做,但是我无法弄清楚该怎么做。那个。
我试图记录SAP Gui中的“后退”动作,但是每次这些动作似乎都不相同,我不能依靠它们。在树液相关的网站上,我找到了如何引用屏幕的方法,但是我不知道如何在代码中利用它。 一种方式是: session.findById(“ wnd [0]”)。名称
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
答案 0 :(得分:0)
您可以尝试以下操作:
...
session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nBPMDG/UTL_BROWSER"
session.FindById("wnd[0]/tbar[0]/btn[0]").Press
...
关于ScriptMan