gpt4 book ai didi

excel - 从 SAP 获取特定单元格数据到 excel

转载 作者:行者123 更新时间:2023-12-04 21:15:04 37 4
gpt4 key购买 nike

我正在尝试使用 VBA 将 SAP 中一行中特定单元格的数据获取到 Excel 表中。当我录制一个我点击我需要的 5-6 个项目的宏时,它只会让我点击一个。此外,我看不到任何将数据从单元格中获取到 SAP 中的方法。 SAP 代码在这里:

Dim W_Ret As Boolean

W_Ret = Attach_Session
If Not W_Ret Then
Exit Sub
End If

startrow = 10

On Error GoTo myerr

objSess.findById("wnd[0]").maximize
objSess.findById("wnd[0]/tbar[0]/okcd").Text = "/nymm_pricelist"
objSess.findById("wnd[0]").sendVKey 0
objSess.findById("wnd[0]/usr/ctxtS_MATNR-LOW").Text = Cells(currentline, 1).Value
objSess.findById("wnd[0]/usr/ctxtS_VKORG-LOW").Text = Cells(currentline, 4).Value
objSess.findById("wnd[0]/usr/ctxtS_VKORG-LOW").SetFocus
objSess.findById("wnd[0]/usr/ctxtS_VKORG-LOW").caretPosition = 4
objSess.findById("wnd[0]").sendVKey 8
Set myGrid = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell")
Cells(currentline, 5).Value = myGrid.GetCellValue(0, "MAKTX")
Cells(currentline, 6).Value = myGrid.GetCellValue(0, "GLOBALSALES_KBETR")
Cells(currentline, 7).Value = myGrid.GetCellValue(0, "GLOBALSALES_KONWA")
Cells(currentline, 8).Value = myGrid.GetCellValue(0, "GLOBALTRANSFER_KBETR")
Cells(currentline, 9).Value = myGrid.GetCellValue(0, "GLOBALTRANSFER_KONWA")


' Setting the line status to completed
Cells(currentline, 2).Value = 1
Exit Sub

myerr:
' Some error occured
' Setting the line status to Failed
Cells(currentline, 2).Value = 2

任何帮助表示赞赏!

最佳答案

我解决如下问题。

  • 首先,我记录了一个帮助脚本。这样做时,网格的相关列被一个接一个地标记,例如按升序排列。以这种方式处理所有感兴趣的列后,您可以在录制的脚本中发现所有列名。
  • 帮助脚本应如下所示:
    . . .
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").currentCellColumn = "GLOBALTRANSFER_KONWA"
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectColumn "GLOBALTRANSFER_KONWA"
    session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").pressToolbarButton "&SORT_ASC"
  • 然后在正确的脚本中,例如下列的:
    . . .
    session.findById("wnd[0]").maximize
    session.findById("wnd[0]/tbar[0]/okcd").text = "/nymm_pricelist"
    session.findById("wnd[0]").sendVKey 0
    session.findById("wnd[0]/usr/ctxtS_MATNR-LOW").text = Cells(currentline, 1).Value
    session.findById("wnd[0]/usr/ctxtS_VKORG-LOW").text = Cells(currentline, 4).Value
    session.findById("wnd[0]/usr/ctxtS_VKORG-LOW").setFocus
    session.findById("wnd[0]/usr/ctxtS_VKORG-LOW").caretPosition = 4
    session.findById("wnd[0]").sendVKey 8
    set myGrid = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell")
    'myPar_1 = myGrid.getcellvalue (0 , "X")
    'myPar_2 = myGrid.getcellvalue (0 , "Y")
    'myPar_3 = myGrid.getcellvalue (0 , "Z")
    'myPar_4 = myGrid.getcellvalue (0 , "U")
    'myPar_5 = myGrid.getcellvalue (0 , "V")
    myPar_6 = myGrid.getcellvalue (0 , "GLOBALTRANSFER_KONWA")

  • 对于字符串 X - V,将使用有效的列名。

    问候,
    脚本人

    关于excel - 从 SAP 获取特定单元格数据到 excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47177189/

    37 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com