2013-04-19 7 views
0

У меня есть эта таблица Excel, и я использую сканер штрих-кода, каждый раз, когда я что-то захватываю с помощью сканера штрих-кода, курсор пропускает один столбец.Сканирование штрих-кода VBA Excel Код

enter image description here

Например, на 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, поэтому я могу начать сканирование второго окна.

мне нужна помощь, чтобы разработать правильный код, так что я могу использовать мой сканер для захвата запасов на моем маленьком складе

+0

возможный дубликат [Как завернуть Excel курсор, чтобы сохранить это в определенном диапазоне] (http://stackoverflow.com/questions/11366823/how-to-wrap-excel-cursor-to-keep-it-within-a-специфический-диапазон) –

+0

Это единственный раз, когда код падает при сканировании в столбце G или пропускает столбец каждый раз, когда вы что-то сканируете? Если это только последний столбец, почему бы не явным образом сказать, что он идет в столбец А, а строка - на 1 больше, чем когда бы то ни было? Если это не работает ни на одном из столбцов, то это совсем другая история .... Что-то вроде «ElseIf Not Intersect (Target, Columns (7)) - это ничто тогда Range (« A »& Target.Row + 1). Выберите «в качестве последней строки ElseIf. – sous2817

+0

Обычно, если вы посмотрите в руководстве пользователя для вашего сканера штрих-кода, будут обнаружены специальные штрих-коды для сканирования, которые настраивают любые символы префикса или суффикса, отправленные штрих-кодом. Используйте их, чтобы отключить символ TAB, отправляемый как суффикс – barrowc

ответ

2

Возможно, сканер штрих-кода автоматически вставляет вкладку или введите нажатие клавиши после каждой записи. Возможно, ваша последняя строка должна быть Target.Offset(1, -7). Выберите этот -7 столбцов вместо шести, чтобы компенсировать сканирование штрих-кода вправо в дополнительное время. Или использовать

cells(Target.row+1,1).Select 

для беспокойного последней строке кода, это говорит о его для выбора текущей строки плюс один, и окончательно столбец A или 1.

+11

Пожалуйста, воздержитесь от публикации ссылок на ваш канал YouTube. – Kermit

Смежные вопросы