我有条形码扫描仪。因此,当使用喷枪扫描条形码时,通常会将值输入到屏幕上的文本字段中。
所以我制作了一个excel宏。扫描条形码时,文本显示在以new line
字符结尾的单元格上(文本+“\ r \ n”由扫描仪本身提供)。所以一个事件被触发并完成其余的事情。
问题是该事件仅由新行字符触发。如果条形码扫描器在每个条形码输出后没有提供\r\n
怎么办?我该如何处理这种情况?
如何检测并触发事件?
答案 0 :(得分:2)
如果您创建用户表单以获取输入,则可以使用keydown
或keypress
事件来检测按下的键。您必须知道条形码的结束条件是什么,因此您知道何时将值发送到要处理的单元格。
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)
如果没有userforms,您将不得不依赖enter / newline来触发工作表中的Change
事件
答案 1 :(得分:0)
将如下的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