Я пытаюсь отсканировать штрих-код и переместить 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 ссылку на один модуль. Это очень легко обновить. Дайте мне знать, если я могу помочь с любыми другими вопросами штрих-кода