CK13N 事务使用 VBA 从 GuiTree table 字段读取文本
CK13N transaction read text from GuiTree table fields using VBA
我正在寻找如何从 SAP table 中读取文本的解决方案。
我可以 select table 中的特定单元格,但不知道获取其文本值的引用。
下面的代码工作正常,但我需要的是 selectItem
我需要从这个项目中获取文本。
相关部分代码:
Dim SapGuiAuto, SAP, Connection, Session
If Not IsObject(SAP) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set SAP = SapGuiAuto.GetScriptingEngine
Set Connection = SAP.Children(0)
Set Session = Connection.Children(0)
End If
ReDim ArrSap(1 To 1, 1 To 1)
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[0]").pressButton "MATE"
Session.findById("wnd[0]").iconify
On Error Resume Next
For i = 1 To 999
Select Case i
Case Is > 99
Case Is > 99
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").selectItem " " & i & "", "C 10"
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").expandNode " " & i & ""
Case Is > 9
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").selectItem " " & i & "", "C 10"
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").expandNode " " & i & ""
Case Else
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").selectItem " " & i & "", "C 10"
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").expandNode " " & i & ""
End Select
Next i
我知道一个解决方法。
例如:
...
For i = 1 To 999
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").selectItem right(space(10) & cstr(i),11) , "C 10"
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").expandNode right(space(10) & cstr(i),11)
session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").itemContextMenu right(space(10) & cstr(i),11) , "C 10"
session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").selectContextMenuItem "&FIND"
myText = session.findById("wnd[1]/usr/txtLVC_S_SEA-STRING").text
session.findById("wnd[1]/tbar[0]/btn[12]").press
msgbox myText
Next i
此致,
脚本人
更快的解决方案可能如下所示:
...
set myTree = Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]")
For i = 1 To 999
myTree.selectItem right(space(10) & cstr(i),11) , "C 10"
myTree.expandNode right(space(10) & cstr(i),11)
myText = myTree.getItemText (right(space(10) & cstr(i),11) , "C 10")
msgbox myText
Next i
此致,
脚本人
我正在寻找如何从 SAP table 中读取文本的解决方案。
我可以 select table 中的特定单元格,但不知道获取其文本值的引用。
下面的代码工作正常,但我需要的是 selectItem
我需要从这个项目中获取文本。
相关部分代码:
Dim SapGuiAuto, SAP, Connection, Session
If Not IsObject(SAP) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set SAP = SapGuiAuto.GetScriptingEngine
Set Connection = SAP.Children(0)
Set Session = Connection.Children(0)
End If
ReDim ArrSap(1 To 1, 1 To 1)
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[0]").pressButton "MATE"
Session.findById("wnd[0]").iconify
On Error Resume Next
For i = 1 To 999
Select Case i
Case Is > 99
Case Is > 99
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").selectItem " " & i & "", "C 10"
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").expandNode " " & i & ""
Case Is > 9
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").selectItem " " & i & "", "C 10"
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").expandNode " " & i & ""
Case Else
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").selectItem " " & i & "", "C 10"
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").expandNode " " & i & ""
End Select
Next i
我知道一个解决方法。
例如:
...
For i = 1 To 999
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").selectItem right(space(10) & cstr(i),11) , "C 10"
Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").expandNode right(space(10) & cstr(i),11)
session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").itemContextMenu right(space(10) & cstr(i),11) , "C 10"
session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]").selectContextMenuItem "&FIND"
myText = session.findById("wnd[1]/usr/txtLVC_S_SEA-STRING").text
session.findById("wnd[1]/tbar[0]/btn[12]").press
msgbox myText
Next i
此致, 脚本人
更快的解决方案可能如下所示:
...
set myTree = Session.findById("wnd[0]/shellcont[0]/shell/shellcont[1]/shell[1]")
For i = 1 To 999
myTree.selectItem right(space(10) & cstr(i),11) , "C 10"
myTree.expandNode right(space(10) & cstr(i),11)
myText = myTree.getItemText (right(space(10) & cstr(i),11) , "C 10")
msgbox myText
Next i
此致, 脚本人