заставить автоматику c перемещаться между столбцами и ячейкой? - PullRequest
0 голосов
/ 29 января 2020

enter image description here

Возможно ли сделать автоматом c перемещение между столбцами и ячейкой?

Например:
Я хочу только столбец A, B, C (номер элемента в столбце A Столбец B-LP (номерной знак) Столбец- C Местоположение, в котором я хочу сканировать штрих-код и курсор из столбец A2 go справа от столбца B2, от столбца B до столбца C2, но из столбца C2 я хочу вернуться к столбцу A3, следующий Ячейка, подобная automati c, возможна? Я возвращаюсь к колонке А3.

Ответы [ 2 ]

1 голос
/ 29 января 2020

Если сканер настроен на нажатие клавиши Enter, используйте этот фрагмент кода в событии Worksheet_Change:

Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Cells.count = 1 Then
        If Target.Column = 1 Or Target.Column = 2 Then
            Target.Offset(0, 1).Select
        ElseIf Target.Column = 3 Then
            Target.Offset(1, -2).Select
        End If
   End If
End Sub

Он не будет перемещать выделение, если вы измените что-либо за пределами столбцов A: C .

0 голосов
/ 29 января 2020

Простая альтернатива - отформатировать столбцы от A до C в виде таблицы (объект списка). И измените параметр Движение ячейки после ввода в параметрах Excel на right вместо вниз. Ввод данных будет go из столбца C в A в следующей строке:

enter image description here Изображение 1: значения только что введены и подтверждено Введите . Поскольку столбец C является последним в таблице, теперь он начинается заново в столбце следующей строки A.


Направление движения ячейки также можно изменить с помощью кода

Application.MoveAfterReturnDirection = xlToRight

так что вы можете, например. измените его, если рабочая книга откроется, и измените ее обратно, если она закроется, чтобы она не затронула все ваши рабочие книги.

Option Explicit

Dim MoveAfterReturnDirection_ORIGINAL As Long

Private Sub Workbook_Open()
    MoveAfterReturnDirection_ORIGINAL = Application.MoveAfterReturnDirection
    Application.MoveAfterReturnDirection = xlToRight
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.MoveAfterReturnDirection = MoveAfterReturnDirection_ORIGINAL
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...