键入文字后更改选定的单元格

时间:2019-01-11 19:02:07

标签: excel vba

我有一个Excel文件,我需要将扫描的条形码插入选定的单元格,然后我需要选择下一个单元格而不是下面的单元格。例如:

当前所选单元格= A1,扫描并插入条形码。现在,当前选定的单元格应该是B1而不是A2。

我尝试添加文本框,并且工作正常,但是发现了问题。例如,如果我的条形码是20010,我的代码将拆分一个数字并插入一个单元格中。因此,我没有在A1 20010中拥有2,而是在B1 0中,在C1 0中在D1 1中以及在E1 0中拥有。

这是我的代码:

Private Sub TextBox1_Change()
    If Len(TextBox1.Value) > 0 Then
        ActiveCell.Value = TextBox1.Value
        ActiveCell.Offset(0, 1).Activate
        TextBox1.Value = ""
        TextBox1.Activate
   End If
End Sub

PD。我不知道条形码的长度。永远不会一样。

我该如何解决我的问题?

1 个答案:

答案 0 :(得分:2)

扫描仪通常在扫描后可以编程输入回车符或制表符,但是如果您不愿意使用VBA来完成此操作,则可以摆脱文本框并在其工作表代码中使用它您要扫描到的工作表:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Row = 1 Then
        ActiveCell.Offset(-1, 1).Select
    End If
End Sub

如果您希望它从A列移动到B到C而不管行号,则将上面的更改为

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    ActiveCell.Offset(-1, 1).Select
End Sub