0

我不抱希望,但我想知道是否有办法让 vba 脚本识别 SAP GUI 引发的错误。例如,如果一个事务被另一个用户锁定。
目前,如果弹出此错误,脚本不会考虑它,并继续到下一行(通常会出错,因为我按下的任何按钮都不存在)。如果可能的话,我想在下一行之前确定该错误,以便用户可以修复它。

在某些情况下,如果完成了让我的脚本承担错误的变通办法,再加上一个on error resume next但是这让我畏缩,并且不适用于所有情况。

例子:

For Each cell In Range("D:D")
    If cell.Value = "" Then Exit For
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/ctxtMAPL-MATNR[2," & 4 & "]").Text = cell.Value
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/txtMAPL-PLNAL[0," & 4 & "]").Text = groupctr
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/ctxtMAPL-WERKS[3," & 4 & "]").Text = plant
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010").verticalScrollbar.Position = i + 1
'If a duplicate entry is found, an SAP message box pops up. The script then closes the message box. If no message box pops up,
'the script errors when trying to close it. Therefore, an "error" means the item was sucesfully added.
    On Error Resume Next
    session.findById("wnd[2]/tbar[0]/btn[0]").press
Next cell

为清楚起见,我试图达到以下目的:

On Error Goto ErrHndl
'...my code...
exit sub

ErrHdnl:
    Select Case SAPErrCode
        Case [ExCode1]
             'do things for this error type
        Case [ExCode2]
             'do different things for this error type
4

0 回答 0