excel 选择直到SAP GUI中的最后一项

qnyhuwrf  于 2023-02-05  发布在  其他
关注(0)|答案(1)|浏览(162)

我尝试在SAP GUI中自动执行此任务,选择两列,然后向下翻页,直到最后一项,并复制选择。
我在SAP GUI中记录了一个脚本(见结尾)。脚本的这一行负责向下翻页,并在找到底部时停止:

session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell" _
).firstVisibleRow = NUMBER

但是这个数字总是变化的,我不能说最后一行是577、600或900......我需要每次都知道确切的数字。
我认为While应该是有用的,但我不知道如何在SAP GUI中验证它。
录制脚本:

Sub AUTOMATE()
    
    If Not IsObject(App) Then
       Set SapGuiAuto = GetObject("SAPGUI")
       Set App = SapGuiAuto.GetScriptingEngine
    End If
    If Not IsObject(Connection) Then
       Set Connection = App.Children(0)
    End If
    If Not IsObject(session) Then
       Set session = Connection.Children(0)
    End If
    If IsObject(WScript) Then
       WScript.ConnectObject session, "on"
       WScript.ConnectObject Application, "on"
    End If
    session.findById("wnd[0]").maximize
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").setCurrentCell -1, "FEVOR"
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").firstVisibleRow = 84
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").selectColumn "FEVOR" 'the first column I want
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").selectColumn "AUFNR" 'the second column I want
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").firstVisibleRow = 140
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").firstVisibleRow = 280
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").firstVisibleRow = 336
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").firstVisibleRow = 476
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").firstVisibleRow = 532
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").firstVisibleRow = 577
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").contextMenu
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell/shellcont[1]/shell").selectContextMenuItemByPosition "0" 'copy the selection
    
    Range("F2").Select 'select the cell in my target sheet
    ActiveSheet.Paste 'paste it
    
End Sub
bqf10yzr

bqf10yzr1#

不确定这是否是您要查找的内容,但要查找我使用的行数
countRows=会话.查找按ID(“wnd[0]/usr/cntlGRID 1/ shell 控制/ shell 控制[1]/ shell ”).行计数
然后在while循环中查找特定项:
po =会话.查找依据ID(“wnd[0]/usr/cntlGRID 1/ shell 控制/ shell / shell 控制[1]/ shell ”).获取单元格值(j,“VBELN”)
其中po是我想要的变量,j是行号。我使用的是python,因此语法可能不同

相关问题