Я пытаюсь запустить код для использования sap_a и sap_b (оба текстовых поля в пользовательской форме) для поиска переменной «Выполнить». Я написал код, чтобы человек, вводящий значения sap_a и sap_b, мог ввести значения в любое поле, и переменная Run была бы найдена, поэтому существует ErrorCheck1. ErrorCheck2 существует просто для предоставления сообщения, если значения в sap_a / b не могут быть сопоставлены с переменной «Run». Проблема, с которой я столкнулся, заключается в том, что этот код генерирует значение «Выполнить», даже если одно из значений sap_a или sap_b неверно (т.е. sap_a - это значение, которое существует в электронной таблице, sap_b - это поддельное значение, не существующее в таблицу, а переменная Run все еще создается). Есть ли у вас какие-либо комментарии относительно проблем с моим кодом или каких-либо проблем, которые вы видите? Код прилагается.
Спасибо!
Private Sub SearchButtonTEST_Click()
Dim sap_a As Variant
Dim sap_b As Variant
Dim Run_ As Variant
Sheets("R_Database Sheet").Activate
sap_a = textbox5.Value
sap_b = textbox8.Value
If sap_a = "" And sap_b = "" Then
Run_ = ""
Let textbox1.Text = Run_
Msgbox "Must enter SAP Codes in SAP # A and SAP # B to search."
Exit Sub
Else
Check1:
On Error GoTo ErrorCheck1
Run_ = Application.WorksheetFunction.Index(Sheets("R_Database Sheet").Range("A:A"), Application.WorksheetFunction.Match(CLng((sap_a)), Sheets("R_Database Sheet").Range("E:E"), Application.WorksheetFunction.Match(CLng((sap_b)), Sheets("R_database sheet").Range("H:H"), 0)))
Let textbox1.Text = Run_
Check2:
On Error GoTo ErrorCheck2
Run_ = Application.WorksheetFunction.Index(Sheets("R_Database Sheet").Range("A:A"), Application.WorksheetFunction.Match(CLng((sap_b)), Sheets("R_Database Sheet").Range("E:E"), Application.WorksheetFunction.Match(CLng((sap_a)), Sheets("R_database sheet").Range("H:H"), 0)))
Let textbox1.Text = Run_
Exit Sub
Check3:
Msgbox "No data found for specified SAP #'s."
End If
Exit Sub
ErrorCheck1:
Resume Check2
ErrorCheck2:
Resume Check3
End Sub