我正在尝试扫描条形码并让 Excel 移动到正确的单元格
Posted
技术标签:
【中文标题】我正在尝试扫描条形码并让 Excel 移动到正确的单元格【英文标题】:I am trying to scan barcode and have Excel move to the right cell 【发布时间】:2016-07-24 08:06:30 【问题描述】:当我扫描条形码时,我需要使光标移动到 Excel 中的右侧单元格,但目前它下降了。我不想在 Excel 选项中更改它,因为当我在其他工作表上按 Enter 时,我需要让单元格光标向下。
【问题讨论】:
你可以使用Workbook_SheetActivate
事件excel.tips.net/…来做这样的事情
它似乎不起作用。我不确定当我输入代码时是否没有找到正确的方法来保存或使其生效。我只是按下保存按钮。当我关闭 VBA 并返回时,它仍然存在。
您必须根据您的需要调整该代码 - 它不太可能完全按照发布的那样工作......
您的扫描仪可能被配置为在您的数据中附加一个tab
而不是enter
此答案提供了有关处理控制字符(例如 HT 和 CR)的复杂性的信息:***.com/a/30904203/2568535
【参考方案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
确保在单元格 A1 中输入值 2 开始。
如果你最终想这样做,你可以把它变成一个循环。 我相信有更简单的方法,但我制作了一个 excel 模板来粘贴到 VBA 表一个模块参考中。很容易更新。如果我可以帮助解决任何其他条形码问题,请告诉我
【讨论】:
以上是关于我正在尝试扫描条形码并让 Excel 移动到正确的单元格的主要内容,如果未能解决你的问题,请参考以下文章