#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
на строке после ввода.