我有这个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,所以我可以开始扫描第二个框。
我需要一些帮助来开发正确的代码,以便我可以使用我的扫描仪捕获我小仓库的库存
答案 0 :(得分:3)
也许您的条形码扫描仪会在每次输入后自动插入标签或输入击键。也许你的最后一行应该是Target.Offset(1, -7)
。选择这个-7列而不是六列可以补偿条形码扫描器向右标签额外的时间。或者使用
cells(Target.row+1,1).Select
对于麻烦的最后一行代码,这告诉它选择当前行加1,最后选择A或1列。