将多个条形码扫描到单个Excel单元格中,每个条形码位于单独的行上
图书馆有一张Excel表格,用作借阅给其他图书馆的书籍的装箱单。 每行代表一个正在包装的箱子。该行的单元格包含收件人、装运编号、箱号等信息 在其中一列中,他们希望扫描将放入该框中的几本书的条形码“采购编号”,这样每个扫描编号将显示在该单元格中的新行上 但当他们扫描条形码时,Excel会移到下一行,因为扫描仪被编程为使用CR/LF终止扫描数据 他们无法重新编程扫描仪,因为它们用于其他应用程序 我们如何让Excel:将多个条形码扫描到单个Excel单元格中,每个条形码位于单独的行上,excel,excel-2010,vba,Excel,Excel 2010,Vba,图书馆有一张Excel表格,用作借阅给其他图书馆的书籍的装箱单。 每行代表一个正在包装的箱子。该行的单元格包含收件人、装运编号、箱号等信息 在其中一列中,他们希望扫描将放入该框中的几本书的条形码“采购编号”,这样每个扫描编号将显示在该单元格中的新行上 但当他们扫描条形码时,Excel会移到下一行,因为扫描仪被编程为使用CR/LF终止扫描数据 他们无法重新编程扫描仪,因为它们用于其他应用程序 我们如何让Excel: If we're in column C When Excel detec
If we're in column C
When Excel detects CR/LF
If the cell was not empty
Append a new line to the contents of the cell
Append the scanned data to the contents of the cell
Stay in that cell ready for the next scan
然后,如果需要,他们可以按箭头键离开牢房
--adTHANKSvance大多数人都知道宏代码(包括事件宏,如工作表更改)会杀死
。如果允许运行Undo
缓冲区,但不知道在更改单元格值之前可以捕获并使用。Undo
缓冲区。换句话说,您可以获取新值,强制执行.Undo
,然后使用换行符(例如Chr(10)
作为分隔符)将新值附加到旧值
右键单击工作表的名称选项卡,然后选择查看代码。当VBE打开时,将以下内容粘贴到标题为Book1-Sheet1(代码)的窗格中
您没有提供任何细节,因此我将条形码输入范围想象为C2:C10。您应该能够修改该部分,使其更接近输入条形码的范围
当您认为输入范围正确时,点击Alt+Q返回工作表
注意:我没有条形码扫描器,但我过去使用过,而且它们总是模仿键盘输入(取决于条形码扫描器软件)。这适用于键盘输入,因此请确保扫描仪软件在扫描输出后附加硬返回。如果您想采用这种方法,可以使用注释行向下移动一个单元格。谢谢。非常有趣。我测试了它,它工作了,有一个大问题。如果他们犯了一个错误(可能会把同一本书扫描两次),他们永远无法摆脱它。当然,撤销不起作用,这是意料之中的,但也不能手动编辑单元格,或清除单元格并重新开始。所以这很有趣,但并不实用。@JohnWilson-The
Delete
行为可能会在上面添加一到两行,模仿Ctrl+Z
行为可能会更多。控制单元格或区域的重复条目时出错。很容易添加。谢谢您的建议。经过几天的努力,我还是没能成功。我想我会告诉他们这不会是自动化的。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C2:C10")) Is Nothing Then
On Error GoTo Fìn
Application.EnableEvents = False
Dim vNew As Variant
vNew = Target.Value
Application.Undo
If Not IsEmpty(Target) Then
Target = Target.Value & Chr(10) & vNew
Else
Target = vNew
End If
'Target.Offset(1,0).Activate
End If
Fìn:
Application.EnableEvents = True
End Sub