根据 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
我的脚本正在运行,但是有一个字段我不知道如何在 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