根据 Excel 字段(列)在 SAP excel 脚本值中设置 VBA 代码

Set VBA code in SAP excel script value based on Excel field (Column)

我的脚本正在运行,但是有一个字段我不知道如何在 VBA 脚本中进行更改。我需要根据 Excel 中的条目更改它。

这是我遇到问题的脚本,我加粗的值 (4)。

我已经在手动更改值时进行了测试并且它有效。但我需要的是根据 excel 文件中的数据将值 (4) 更改为不同的值。

Session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT/ssubSUBSCREEN_BODY:SAPMV50A:1202/tblSAPMV50ATC_LIPS_OVER_INB").getAbsoluteRow(4).Selected = False Session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT/ssubSUBSCREEN_BODY:SAPMV50A:1202/tblSAPMV50ATC_LIPS_OVER_INB/txtLIPS-POSNR[0,4]").SetFocus Session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT/ssubSUBSCREEN_BODY:SAPMV50A:1202/tblSAPMV50ATC_LIPS_OVER_INB/txtLIPS-POSNR[0,4]").caretPosition = 0

示例: 如果 Excel 文件在 G 列中显示“20”,则将上面的 (4) 更改为 (1) 所以简单来说,就是根据excel的值替换脚本中的值。

是的,当然,您需要 case 声明。我会这样做:

Select Case value = test_condition

   Case condition_1
      rowResult = 1

   Case condition_2
      rowResult = 2

   ...

   Case condition_n
      result_n

 [ Case Else
      result_else ]

End Select

那么 SAP 代码将是:

Session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT/ssubSUBSCREEN_BODY:SAPMV50A:1202/tblSAPMV50ATC_LIPS_OVER_INB").getAbsoluteRow(rowResult).Selected = False
Session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT/ssubSUBSCREEN_BODY:SAPMV50A:1202/tblSAPMV50ATC_LIPS_OVER_INB/txtLIPS-POSNR[0," & CStr(rowResult) & "]").SetFocus
Session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT/ssubSUBSCREEN_BODY:SAPMV50A:1202/tblSAPMV50ATC_LIPS_OVER_INB/txtLIPS-POSNR[0," & CStr(rowResult) & "]").caretPosition = 0