>

VBA를 사용하여 SAP에서 데이터를 가져오고 문자열에 특정 단어가 포함되어 있는지에 따라 상태를 분리합니다. 오류가 발생하면 루프를 종료해야 SAP 인터페이스에 더 이상 데이터가 없으며 거기에없는 것을 가져 오려고합니다. 나는이 매크로에서 이것을 문제없이 이전에 사용했지만 이제는 on error goto 명령이 활성화되지 않고 대신 오류 메시지 -2147024809를 표시합니다.

오류시 goto가 제대로 작동하는 첫 번째 섹션입니다

'Total Number in lot loop
'========================================================
For C = 0 To 20
'Exits loop when no more are found in column
On Error GoTo No_More_In_Lot
'Use Required end column since there is always data here (C does not include the current QN)
place_holder = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").getcellvalue(C, "LTRMN") ' LTRMN=Name of column in recording
Notification_Status = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").getcellvalue(C, "STTXT")
'Exits when no more data
If place_holder = "" Then
Exit For
Else
End If
'Counts Each valid complaint
If InStr(1, Notification_Status, "BIMP") Then
'Do nothing
Else
If InStr(1, Notification_Status, "CC04") Then
'do nothing
Else
Number_In_Lot = Number_In_Lot + 1
End If
End If
Next C
No_More_In_Lot:
'Places # in lot in excel
Cells(i + 2, 8) = Number_In_Lot

아래에 오류 goto가 제대로 작동하지 않는 다음 코드가 있습니다.

내가 작성한 코드에 문제가있는 사람이 있습니까?

'Begins separating the notification statuses
'========================================================
Number_Substantiated = 0
Number_Not_Substantiated = 0
Number_Counterfeit = 0
Number_Cancelled = 0
Current_QN = Cells(i + 2, 2)
For C = 0 To 20
'Resets the Notification Status
Notification_Status = ""
'Exits loop when no more are found in column
On Error GoTo Skip
Notification_Number = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").getcellvalue(C, "QMNUM")
If Current_QN = Notificaiton_Number Then
'Do nothing (To not include the current notification status in the report)
Else
'Pull Notification status
Notification_Status = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").getcellvalue(C, "STTXT") ' STTXT=Name of column in recording

If InStr(1, Notification_Status, "CC01") Then
Number_Substantiated = Number_Substantiated + 1
Else: End If
'Include the notifcation status in the report
If InStr(1, Notification_Status, "CC02") Then
Number_Not_Substantiated = Number_Not_Substantiated + 1
Else: End If
'Include the notifcation status in the report
If InStr(1, Notification_Status, "CC03") Then
Number_Counterfeit = Number_Counterfeit + 1
Else: End If
'Include the notifcation status in the report
If InStr(1, Notification_Status, "CC04") Then
Number_Cancelled = Number_Cancelled + 1
Else: End If

End If
Next C
Skip:
'Passes values to sheet
Cells(i + 2, 9) = Number_Substantiated
Cells(i + 2, 10) = Number_Not_Substantiated
Cells(i + 2, 11) = Number_Counterfeit
Cells(i + 2, 12) = Number_Cancelled

  • 답변 # 1

    VB에 예약 키워드 SKIP에 문제가있을 수 있습니다.

    ...
    On Error GoTo Skip_
    ...
    Skip_:
    ...
    
    

    안녕하세요, ScriptMan

관련 자료

  • 이전 javascript - Xpage에서"Repeatagent"를 실행하십시오
  • 다음 webhook 클라이언트가있는 dialogflow - 오류 agentgetcontext가 incomingmessageresp의 함수가 아닙니다