我正在研究一种解决方案,该解决方案将使用从标签读取信息的键盘仿真设备填充的数据填充 excel 单元格。读取数据后,键盘仿真设备将发送一个后缀字符(如 TAB 或 CR)以前进到不同的单元格
我正在尝试确定是否可以使用 VBA 来测试当单元格从 TAB/CR 失去焦点时填充的数据的长度。如果长度不正确,我希望可以选择删除前一个单元格的内容或显示一个消息框窗口,告诉用户有问题。
我真的不知道从哪里开始。
有任何想法吗?
编辑 - 这是对我有用的代码。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iLen As Integer
If Target.Cells.Count > 1 Then Exit Sub ' bail if more than one cell selected
iLen = Len(Target.Value) ' get cell data length
If iLen = 0 Then Exit Sub ' bail if empty data
If Target.Column = 1 Then ' if Col A
If Target.Row = 1 Then Exit Sub ' bail if column header
If iLen <> 3 Then 'Replace *Your Value* with your length
MsgBox "You have entered an incorrect Value"
Application.EnableEvents = False 'So we don't get an error while clearing
Target.Offset(0, 0).Value = ""
Target.Offset(0, 0).Select
Application.EnableEvents = True ' So Excel while function normal again
End If
ElseIf Target.Column = 2 Then ' if Col B
If Target.Row = 1 Then Exit Sub ' bail if column header
If iLen <> 7 Then
MsgBox "You have entered an incorrect Value"
Application.EnableEvents = False
Target.Offset(0, 0).Value = ""
Target.Offset(0, 0).Select
Application.EnableEvents = True
End If
End If
End Sub