Я работаю над проектом с базой данных Excel для отслеживания производства предметов. Были случаи, когда люди сканировали элемент более одного раза, что приводило к проблемам при отправке клиенту.
У меня есть всплывающее окно с предупреждением, чтобы люди не могли сканировать элемент более одного раза, если только они не занимаются переделкой. Если элемент присутствует в «базе данных», есть MsgBox с кнопками vbYesNo. Если люди нажимают «Да», это переделка. Если люди нажимают «Нет», это ошибка, и они выходят из подпрограммы.
Мне нужен способ справиться с переделкой, чтобы он изменил значения ячеек в той же строке, что и исходный элемент.
Вот код, который у меня есть.
Private Sub gbatchd_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) 'Check DB for duplicate value
Set depo = dbgrids.Sheets("Deposition")
Set found = depo.Columns("A").Find(what:=valuetofind, LookIn:=xlValues, lookat:=xlWhole)
valuetofind = gbatchd.Text
FR = depo.Range("A" & Rows.Count).End(xlUp).Row
If KeyCode = 13 Then
For i = 1 To FR
If gbatch.Cells(i, 1).Value = valuetofind Then
MsgBox "This batch has already been deposited!" & vbCrLf & "Rework?", vbYesNo, "Rework?"
If answer = vbNo Then
Exit Sub
Else
depo.Cells(found.Row, 5).Value = "Rework"
End If
End If
Next
End If
End Sub