在一定数量的列之后Excel选项卡到新行

时间:2013-04-16 01:11:27

标签: excel excel-vba row barcode-scanner next vba

我想使用条形码扫描仪设置Excel数据输入电子表格。 条形码扫描器发送条形码,然后根据其编程方式发送标签或输入键。

基本上我想设置一个excel表,我们可以扫描每个项目的6个条形码,每次扫描仪都会显示到下一列,然后当它到达第6列时,下一个选项卡将使它移动到新的下一个产品线。

我希望这是有道理的。它可以在MS字中完成...例如,如果您创建一个包含6列的表并按下7次,它将移动到下一行。 我想在Excel中这样做。 谢谢

3 个答案:

答案 0 :(得分:0)

嗯......经过大量的实验,从很多地方收集代码然后进行调试,我最终得到了以下的VBA宏。希望能帮助到你! :)

  1. 当按下TABENTER键时,Sub Worksheet_Change将会运行。
  2. 它会检查是否留下了F列......
  3. 如果为true =>插入新行并选择第一个单元格[A]n,其中n =行号。
  4. VBA宏代码

    Private Sub Worksheet_Change(ByVal Target As Range)
    
        'Do nothing if more than one cell is changed or content deleted   
        If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
    
        'Column F
        If Target.Column = "6" Then
    
            'Insert new row bellow
            ActiveCell.EntireRow.Offset(1, 0).Insert
    
            'Select first cell of next row just inserted
            ActiveSheet.Cells(ActiveCell.Row + 1, 1).Select
    
         End If
    
    End Sub
    
    
    Private Sub Workbook_Activate()
    Application.OnKey "{TAB}", "Worksheet_Change" 'TAB key press
    Application.OnKey "~", "Worksheet_Change" 'Keyboard ENTER press
    End Sub
    
    Private Sub Workbook_Deactivate()
    Application.OnKey "{TAB}"
    Application.OnKey "~"
    End Sub
    

答案 1 :(得分:0)

TAB或ENTER键已触发SelectionChange事件。

所以,如果你不使用其他实际需要来使用Change事件而不是{{1},那么这可能是做同样事情的一种更整洁的方式事件。

SelectionChange

答案 2 :(得分:0)

也许我在这个问题上遗漏了一些东西,但是如果你选择你的六列并使用“创建列表”命令转换选择,那么每当你选择一行的最后一个单元格时,你将自动转到下一行。此外,如果您在最后一行,将创建一个新行。 IM不确定为什么你需要一个宏?