Я пытаюсь отсканировать штрих-код и переместить Excel в нужную ячейку.

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

1 ответ

Одно решение, которое я нашел, - это блок кода, с которого я изначально начал.

Откройте текстовое поле ActiveX от разработчика под вставкой и поместите его в лист, в который вы хотите сканировать. Выберите A1, затем щелкните текстовое поле. Убедитесь, что в режиме разработчика режим конструктора отключен (посмотрите на ленту панели инструментов).

Строка с ** вокруг него - это то, что вам нужно изменить. Это установлено на длину, но вы также можете поиграть с другими вещами, такими как дела. Попробуйте сделать штрих-код с 12345 в качестве значения.

Private Sub TextBox1_Change()
**If Len(TextBox1.Value) = 5 Then**
    ActiveCell.Value = TextBox1.Value
    ActiveCell.Offset(1).Activate
    Application.EnableEvents = False
    TextBox1.Activate
    TextBox1.Value = ""
End If

End Sub

Пример дела. Попробуйте сделать штрих-код с "Waste R - 1" в качестве значения.

Private Sub TextBox1_Change()

Dim ws As Worksheet, v, k, i, j
Set ws = Worksheets("Sheet1")

v = TextBox1.Value
k = 0
i = 0
j = 0

Select Case v

Case "Waste R - 1": i = 2
k = 1
j = "Waste R - 1"
'Start i at whatever column you want to start at
'k is the type of case and if statement you want to run (I have several, but for simplicity, I have only attached one)


End Select

    If k = 1 Then

    ws.Cells(1, 1) = ws.Cells(1, 1).Value + 1
    ' adds number into cell (A1) to reference which column to be in
    ' Starts in Column A then adds a value of one to reference column B

    i = ws.Cells(1, 1)
    'Sets i = to the A1 value

    Cells(1, i).Value = j
    ' You may be able to set this to textbox1.value
    ' Says to put the Textbox Value into whatever column and row A

    TextBox1.Activate
    TextBox1.Value = ""
End If
End Sub

Не забудьте указать значение 2 в ячейке A1, чтобы начать.

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

Другие вопросы по тегам