У меня есть эта таблица Excel, и я использую сканер штрих-кода, каждый раз, когда я что-то захватываю с помощью сканера штрих-кода, курсор пропускает один столбец.Сканирование штрих-кода VBA Excel Код
Например, на A3 ячейке информация является захват, чтобы курсор переместится в С3, в С3 я захватить еще один штрих-код, и курсор переместится на E3 и так далее; один раз на G3, должен вернуться к A4, чтобы захватить еще одну коробку.
Это код, который у меня есть .....
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Whoa
Application.EnableEvents = False
If Not Target.Cells.CountLarge > 1 Then
If Not Intersect(Target, Columns(1)) Is Nothing Then
Target.Offset(, 1).Select
ElseIf Not Intersect(Target, Columns(2)) Is Nothing Then
Target.Offset(, 1).Select
ElseIf Not Intersect(Target, Columns(3)) Is Nothing Then
Target.Offset(, 1).Select
ElseIf Not Intersect(Target, Columns(4)) Is Nothing Then
Target.Offset(, 1).Select
ElseIf Not Intersect(Target, Columns(5)) Is Nothing Then
Target.Offset(, 1).Select
ElseIf Not Intersect(Target, Columns(6)) Is Nothing Then
Target.Offset(, 1).Select
ElseIf Not Intersect(Target, Columns(7)) Is Nothing Then
Target.Offset(1, -6).Select
End If
End If
Letscontinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume Letscontinue
End Sub
Это работает, когда я делаю это вручную (без сканера), но с помощью сканера штрих-кода она возвращается в столбец B.
Например, на G3 я фиксирую дату со штрих-кодом, а затем он переходит на B4, а не на A4, поэтому я могу начать сканирование второго окна.
мне нужна помощь, чтобы разработать правильный код, так что я могу использовать мой сканер для захвата запасов на моем маленьком складе
возможный дубликат [Как завернуть Excel курсор, чтобы сохранить это в определенном диапазоне] (http://stackoverflow.com/questions/11366823/how-to-wrap-excel-cursor-to-keep-it-within-a-специфический-диапазон) –
Это единственный раз, когда код падает при сканировании в столбце G или пропускает столбец каждый раз, когда вы что-то сканируете? Если это только последний столбец, почему бы не явным образом сказать, что он идет в столбец А, а строка - на 1 больше, чем когда бы то ни было? Если это не работает ни на одном из столбцов, то это совсем другая история .... Что-то вроде «ElseIf Not Intersect (Target, Columns (7)) - это ничто тогда Range (« A »& Target.Row + 1). Выберите «в качестве последней строки ElseIf. – sous2817
Обычно, если вы посмотрите в руководстве пользователя для вашего сканера штрих-кода, будут обнаружены специальные штрих-коды для сканирования, которые настраивают любые символы префикса или суффикса, отправленные штрих-кодом. Используйте их, чтобы отключить символ TAB, отправляемый как суффикс – barrowc