当SAP GUI脚本找不到值时,VBA代码仅首次返回值

2020-08-31 15:02发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我是vba和sap gui脚本的新手,如果您可以帮助我解决该问题,我将非常感谢。

我认为我的错误处理语句可能有问题。 它应该在C列中放置图标值(每个示例为绿色),并将C列留空,然后在B列上放置" No icon",然后转到下一个单元格,然后再次检查是否存在图标或 现在。

我有一个要在sap中检查的excel(A列)中的元素列表,而不是一个一个地手动检查,我正在处理一个宏以检查excel上的所有项目并返回 图标(如果SAP中为绿色,则应返回图标值并将其放在" C"列上),如果找不到图标,则应将值放在:" B"列上未找到图标。

我接下来尝试使错误恢复,但是问题是它只工作一次,然后不管是否有绿色图标,它都开始在C和B列中输入相同的值。

如果我不采用错误处理方法,则一旦没有图标,vba就会显示问题在下面一行:

session.findById(" wnd [0]/usr/tblSAPDV70ATC_NAST3")。Columns.elementAt(0).Width = 4

但是当我执行以下操作时,它可以正常工作(输入" no icon")并结束退出宏:

'=====================列A包含我要检查SAP的数字

在出错时转到味精

对于Columns(" A")。Cells.SpecialCells(xlCellTypeConstants)中的每个rng
Elements = Cells(Elem.Row," A")。Value
如果Elem.Value类似于"?56 *" 然后

'==========================================

session.findById(" wnd [0]")。maximize
session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/nvf03"
session.findById (" wnd [0]")。sendVKey 0
session.findById(" wnd [0]/usr/ctxtVBRK-VBELN")。Text = Elements
session.findById(" wnd [0]/usr/ctxtVBRK-VBELN")。caretPosition = 10
session.findById(" wnd [0]")。sendVKey 0
session.findById(" wnd [0]/mbar/menu [2]/menu [0]/menu [3]")。选择
session.findById(" wnd [0]/usr/tblSAPDV70ATC_NAST3")。Columns.elementAt(0).Width = 4
session.findById(" wnd [0] /usr/tblSAPDV70ATC_NAST3/lblDV70A-STATUSICON[0,1]").SetFocus
session.findById(" wnd [0]/usr/tblSAPDV70ATC_NAST3/lblDV70A-STATUSICON [0,1]")。caretPosition = 0
session.findById(" wnd [0]")。sendVKey 2
session.findById(" wnd [0]/usr/tblSAPDV70ATC_NAST3")。Columns.elementAt(0).Width = 4
session.findById (" wnd [0]/usr/tblSAPDV70ATC_NAST3/lblDV70A-STATUSICON [0,1]")。SetFocus
session.findById(" wnd [0]/usr/tblSAPDV70ATC_NAST3/lblDV70A-STATUSICON [0,1]") .caretPosition = 0
值= session.findById(" wnd [0]/usr/tblSAPDV70ATC_NAST3/lblDV70A-STATUSICON [0,1]")。IconName
session.findById(" wnd [0]/tbar [0]/btn [3]")。press
session.findById(" wnd [ 0]/tbar [0]/btn [3]")。按
session.findById(" wnd [0]/tbar [0]/btn [3]")。按

Cells(rng.Row," C")=值

如果
下一个

结束

味精:

cells(rng.row," D")。value ="无图标"
结束子

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我是vba和sap gui脚本的新手,如果您可以帮助我解决该问题,我将非常感谢。

我认为我的错误处理语句可能有问题。 它应该在C列中放置图标值(每个示例为绿色),并将C列留空,然后在B列上放置" No icon",然后转到下一个单元格,然后再次检查是否存在图标或 现在。

我有一个要在sap中检查的excel(A列)中的元素列表,而不是一个一个地手动检查,我正在处理一个宏以检查excel上的所有项目并返回 图标(如果SAP中为绿色,则应返回图标值并将其放在" C"列上),如果找不到图标,则应将值放在:" B"列上未找到图标。

我接下来尝试使错误恢复,但是问题是它只工作一次,然后不管是否有绿色图标,它都开始在C和B列中输入相同的值。

如果我不采用错误处理方法,则一旦没有图标,vba就会显示问题在下面一行:

session.findById(" wnd [0]/usr/tblSAPDV70ATC_NAST3")。Columns.elementAt(0).Width = 4

但是当我执行以下操作时,它可以正常工作(输入" no icon")并结束退出宏:

'=====================列A包含我要检查SAP的数字

在出错时转到味精

对于Columns(" A")。Cells.SpecialCells(xlCellTypeConstants)中的每个rng
Elements = Cells(Elem.Row," A")。Value
如果Elem.Value类似于"?56 *" 然后

'==========================================

session.findById(" wnd [0]")。maximize
session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/nvf03"
session.findById (" wnd [0]")。sendVKey 0
session.findById(" wnd [0]/usr/ctxtVBRK-VBELN")。Text = Elements
session.findById(" wnd [0]/usr/ctxtVBRK-VBELN")。caretPosition = 10
session.findById(" wnd [0]")。sendVKey 0
session.findById(" wnd [0]/mbar/menu [2]/menu [0]/menu [3]")。选择
session.findById(" wnd [0]/usr/tblSAPDV70ATC_NAST3")。Columns.elementAt(0).Width = 4
session.findById(" wnd [0] /usr/tblSAPDV70ATC_NAST3/lblDV70A-STATUSICON[0,1]").SetFocus
session.findById(" wnd [0]/usr/tblSAPDV70ATC_NAST3/lblDV70A-STATUSICON [0,1]")。caretPosition = 0
session.findById(" wnd [0]")。sendVKey 2
session.findById(" wnd [0]/usr/tblSAPDV70ATC_NAST3")。Columns.elementAt(0).Width = 4
session.findById (" wnd [0]/usr/tblSAPDV70ATC_NAST3/lblDV70A-STATUSICON [0,1]")。SetFocus
session.findById(" wnd [0]/usr/tblSAPDV70ATC_NAST3/lblDV70A-STATUSICON [0,1]") .caretPosition = 0
值= session.findById(" wnd [0]/usr/tblSAPDV70ATC_NAST3/lblDV70A-STATUSICON [0,1]")。IconName
session.findById(" wnd [0]/tbar [0]/btn [3]")。press
session.findById(" wnd [ 0]/tbar [0]/btn [3]")。按
session.findById(" wnd [0]/tbar [0]/btn [3]")。按

Cells(rng.Row," C")=值

如果
下一个

结束

味精:

cells(rng.row," D")。value ="无图标"
结束子

付费偷看设置
发送
1条回答
SKY徐
1楼-- · 2020-08-31 15:17

嗨,

您可能有几个像我一样的名字,但总是有同样的问题。

如果是这样,您可以在这里查看:

https://stackoverflow。 com/questions/58471022/vba-sap-scripting-if-no-icon-found/58501656#58501656

关于ScriptMan

一周热门 更多>