我有一个条形码扫描仪。因此,当使用枪扫描条形码时,通常会将值输入到放置在屏幕上的文本字段中。
所以我做了一个excel宏。并且当扫描条形码时,文本会出现在以字符结尾的单元格上new line
(文本+“\r\n”由扫描仪本身提供)。所以一个事件被触发并完成其余的工作。
问题是该事件仅由换行符触发。如果条码扫描器\r\n
在每次条码输出后都没有提供怎么办。我该如何处理这种情况?如何检测它并触发事件?
如果您创建一个用户表单来接受输入,您可以使用keydown
orkeypress
事件来检测按下的键。您必须知道条形码的结束条件是什么,因此您知道何时将值发送到要处理的单元格。
Keydown 将为您提供转换状态,并捕获 pageup/pagedown/其他特殊键
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
Keypress 仅适用于产生可键入字符的键
Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
如果没有用户表单,您将不得不依靠输入/换行来触发Change
工作表中的事件
在工作表模块中添加如下 Worksheet_Change 事件:
Private Sub Worksheet_Change(ByVal Target As Range)
' Add code here to check for
' new line and add if not present
End Sub
或者,如果您在 Userform 文本框中有数据,则使用以下内容:
Private Sub TextBox1_Change()
' Add code here to check for
' new line and add if not present
End Sub