如何解决配方更新-特定阶段的行选择
我的脚本正在从Excel数据中将数据加载到SAP GUI配方屏幕(事务代码C202
)中。
在“配方”屏幕之一中,将根据Excel中的“相”值列输入值。我需要为Excel工作表中的每个特定“阶段”更新第二个“标准值”和第三个“标准值”。
您能帮我吗?我需要在行之间切换以修改每个阶段
For i = 1 To LastRow
session.findById("wnd[0]/tbar[0]/okcd").Text = "/nC202"
session.findById("wnd[0]").sendVKey 0
Plant = shControlPanel.Range("A" & CurrentRow).Value
RecipeGroup = shControlPanel.Range("B" & CurrentRow).Value
Recipe = shControlPanel.Range("C" & CurrentRow).Value
ECR = shControlPanel.Range("D" & CurrentRow).Value
Phase = shControlPanel.Range("E" & CurrentRow).Value
Value2 = shControlPanel.Range("F" & CurrentRow).Value
Value3 = shControlPanel.Range("G" & CurrentRow).Value
session.findById("wnd[0]/usr/ctxtRC271-PLNNR").Text = RecipeGroup
session.findById("wnd[0]/usr/txtRC271-PLNAL").Text = Recipe
session.findById("wnd[0]/usr/ctxtRC27M-WERKS").Text = Plant
session.findById("wnd[0]/usr/ctxtRC271-AENNR").Text = ECR
session.findById("wnd[0]/usr/ctxtRC271-STTAG").Text = "04.09.2020"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]").sendVKey 0
j = 1
PhaseToChange = session.findById("wnd[0]/usr/tabsTABSTRIP_RECIPE/tabpVOUE/ssubSUBSCREEN_RECIPE:SAPLCPDI:4401/tblSAPLCPDITCTRL_4401/txtPLPOD-VORNR[0," & j & "]").Text
Resorce = session.findById("wnd[0]/usr/tabsTABSTRIP_RECIPE/tabpVOUE/ssubSUBSCREEN_RECIPE:SAPLCPDI:4401/tblSAPLCPDITCTRL_4401/ctxtPLPOD-ARBPL[4," & j & "]").Text
Do While Resorce <> ""
PhaseToChange = session.findById("wnd[0]/usr/tabsTABSTRIP_RECIPE/tabpVOUE/ssubSUBSCREEN_RECIPE:SAPLCPDI:4401/tblSAPLCPDITCTRL_4401/txtPLPOD-VORNR[0," & j & "]").Text
If Phase = PhaseToChange Then
session.findById("wnd[0]/usr/tabsTABSTRIP_RECIPE/tabpVOUE/ssubSUBSCREEN_RECIPE:SAPLCPDI:4401/tblSAPLCPDITCTRL_4401/txtPLPOD-VGW02[18," & j & "]").Text = Value2
session.findById("wnd[0]/usr/tabsTABSTRIP_RECIPE/tabpVOUE/ssubSUBSCREEN_RECIPE:SAPLCPDI:4401/tblSAPLCPDITCTRL_4401/txtPLPOD-VGW03[21," & j & "]").Text = Value3
session.findById("wnd[0]").sendVKey 0
j = j + 1
Else
j = j + 1
End If
CurrentRow = CurrentRow + 1
Phase = shControlPanel.Range("E" & CurrentRow).Value
Value2 = shControlPanel.Range("F" & CurrentRow).Value
Value3 = shControlPanel.Range("G" & CurrentRow).Value
Loop
session.findById("wnd[0]/tbar[0]/btn[11]").press
On Error Resume Next
session.findById("wnd[1]/usr/btnSPOP-VAROPTION1").press
shControlPanel.Range("H" & CurrentRow).Value = "Recipe " & Recipe & " has been changed"
CurrentRow = CurrentRow + 1
解决方法
我无权访问事务C202。但是从我的角度来看,我试图使事情顺利进行。
LastRow = ActiveCell.SpecialCells(xlLastCell).Row
For i = 1 To LastRow
session.findById("wnd[0]/tbar[0]/okcd").Text = "/nC202"
session.findById("wnd[0]").sendVKey 0
Plant = shControlPanel.Range("A" & i).Value
RecipeGroup = shControlPanel.Range("B" & i).Value
Recipe = shControlPanel.Range("C" & i).Value
ECR = shControlPanel.Range("D" & i).Value
Phase = shControlPanel.Range("E" & i).Value
Value2 = shControlPanel.Range("F" & i).Value
Value3 = shControlPanel.Range("G" & i).Value
session.findById("wnd[0]/usr/ctxtRC271-PLNNR").Text = RecipeGroup
session.findById("wnd[0]/usr/txtRC271-PLNAL").Text = Recipe
session.findById("wnd[0]/usr/ctxtRC27M-WERKS").Text = Plant
session.findById("wnd[0]/usr/ctxtRC271-AENNR").Text = ECR
session.findById("wnd[0]/usr/ctxtRC271-STTAG").Text = "04.09.2020"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]").sendVKey 0
j = 1
Do
PhaseToChange = session.findById("wnd[0]/usr/tabsTABSTRIP_RECIPE/tabpVOUE/ssubSUBSCREEN_RECIPE:SAPLCPDI:4401/tblSAPLCPDITCTRL_4401/txtPLPOD-VORNR[0," & j & "]").Text
Resorce = session.findById("wnd[0]/usr/tabsTABSTRIP_RECIPE/tabpVOUE/ssubSUBSCREEN_RECIPE:SAPLCPDI:4401/tblSAPLCPDITCTRL_4401/ctxtPLPOD-ARBPL[4," & j & "]").Text
If Resorce = "" then exit do
If Phase = PhaseToChange Then
session.findById("wnd[0]/usr/tabsTABSTRIP_RECIPE/tabpVOUE/ssubSUBSCREEN_RECIPE:SAPLCPDI:4401/tblSAPLCPDITCTRL_4401/txtPLPOD-VGW02[18," & j & "]").Text = Value2
session.findById("wnd[0]/usr/tabsTABSTRIP_RECIPE/tabpVOUE/ssubSUBSCREEN_RECIPE:SAPLCPDI:4401/tblSAPLCPDITCTRL_4401/txtPLPOD-VGW03[21," & j & "]").Text = Value3
session.findById("wnd[0]").sendVKey 0
shControlPanel.Range("H" & i).Value = "Recipe " & Recipe & " has been changed"
End If
j = j + 1
Loop
session.findById("wnd[0]/tbar[0]/btn[11]").press
On Error Resume Next
session.findById("wnd[1]/usr/btnSPOP-VAROPTION1").press
On error goto 0
next i
关于ScriptMan,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。