Нужна помощь в циклическом выполнении команды в Excel VBA

#excel #vba #loops

Вопрос:

У меня есть командная кнопка в excel, которая открывает поле ввода, позволяющее пользователю ввести определенную строку букв или цифр, которые соответствуют столбцу, и выделить ячейку, если она найдет совпадение. В противном случае он выдает сообщение об ошибке, если совпадение не найдено. Моя проблема в том, что я хочу, чтобы поле ввода снова открывалось после внесения записи, чтобы вы могли сканировать элементы снова и снова без необходимости каждый раз вручную нажимать кнопку на листе.

 Private Sub CommandButton1_Click()

Dim code As Variant
Dim matchedCell As Range

code = InputBox("Please scan a barcode and hit enter if you need to")

Set matchedCell = Range("A2:A88").Find(what:=code, LookIn:=xlValues, _
                  lookat:=xlWhole, MatchCase:=True)
                  
If Not matchedCell Is Nothing Then
    With matchedCell
        Application.Goto .Cells(1)
        .Resize(1, 1).Interior.ColorIndex = 4
    End With

Else
    MsgBox "Serial Number Not Found"
End If

End Sub
 

Я уверен, что это что-то простое, в данный момент я просто рисую пробел. Может кто-нибудь, пожалуйста, показать мне, что мне нужно добавить, чтобы это сработало?

С уважением

Комментарии:

1. Просто повторяйте цикл, пока пользователь не нажмет кнопку отмена в поле ввода.

2. Таков мой план, но как именно это будет выглядеть в этом коде, потому что я попробовал его вчера, и он не работал. Можете ли вы отправить обратно, как бы вы его настроили?

3. Неважно, что я ставил команду «Сделать» не в то место. Спасибо, я знал, что это было что-то простое, у меня просто был ментальный блок, спасибо тебе большое.

4. Поставьте Do в строку перед вводом и Loop после End If . Затем If code = vbNullString Then Exit Loop на строке после ввода.