0

我有一个条形码扫描仪。因此,当使用枪扫描条形码时,通常会将值输入到放置在屏幕上的文本字段中。

所以我做了一个excel宏。并且当扫描条形码时,文本会出现在以字符结尾的单元格上new line(文本+“\r\n”由扫描仪本身提供)。所以一个事件被触发并完成其余的工作。

问题是该事件仅由换行符触发。如果条码扫描器\r\n在每次条码输出后都没有提供怎么办。我该如何处理这种情况?如何检测它并触发事件?

4

2 回答 2

2

如果您创建一个用户表单来接受输入,您可以使用keydownorkeypress事件来检测按下的键。您必须知道条形码的结束条件是什么,因此您知道何时将值发送到要处理的单元格。

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工作表中的事件

于 2012-11-21T14:14:01.607 回答
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
于 2012-11-21T14:00:16.750 回答