【发布时间】:2013-04-21 02:15:52
【问题描述】:
我有这个 excel 电子表格,并且我正在使用条形码扫描仪,每次我用条形码扫描仪捕获某些东西时,光标都会跳过一列。
例如在 A3 单元格捕获信息,因此光标将移动到 C3,在 C3 我捕获另一个条形码,光标将移动到 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,因此我可以开始扫描第二个盒子。
我需要一些帮助来开发正确的代码,以便我可以使用我的扫描仪来捕获我的小仓库中的库存
【问题讨论】:
-
当您在 G 列中扫描时,代码是唯一一次掉下来,还是每次扫描时都会跳过一列?如果它只是最后一列,为什么不明确告诉它转到 A 列并且该行比以前多 1 呢?如果它在任何列上都不起作用,那就另当别论了....类似“ElseIf Not Intersect(Target, Columns(7)) Is Nothing Then Range("A" & Target.Row + 1) .Select" 作为最后的 ElseIf 行。
-
通常,如果您查看条码扫描仪的用户手册,将会有一些特殊的条码可供扫描,这些条码配置了与条码一起发送的任何前缀或后缀字符。使用这些来关闭作为后缀发送的 TAB 字符
标签: excel excel-2010 vba