вернуться к исходной ячейке следующей строки с указанным начальным знаком сканируемого значения - PullRequest
0 голосов
/ 17 января 2019

Я сканирую несколько штрих-кодов «только для чисел» в одной и той же строке, пока не будет отсканировано «Z-xxx», а затем автоматически вернусь к исходному столбцу +1 строки. Я хочу включить 3 символа, которые находятся на одном и том же скане, но только после "Z-" в новой ячейке в новой строке. Пример: если я сканирую «Z-123», я хочу вернуться к исходному столбцу и +1 строке со значением ячейки = «123».

Private Sub Worksheet_Change(ByVal Target As Range)

    With Target
        If Len(.Value) And .Column > 2 Then
            If .Value = "Z" Then
                Cells(.Row + 1, 3).Select
            Else
                Cells(.Row, .Column + 1).Select
            End If
        End If
    End With
End Sub

1 Ответ

0 голосов
/ 17 января 2019

Примерно так должно работать

edit: добавлена ​​обработка ошибок, чтобы убедиться, что события не застряли "off"

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim v

    'skip multi-cell updates
    If Target.CountLarge > 1 Then Exit Sub

    With Target
        v = Trim(.Value)
        If Len(v) > 0 And .Column > 2 Then
            If v Like "Z-#*" Then
                On Error Goto haveError
                Application.EnableEvents = False 
                With Me.Cells(.Row + 1, 3)
                    .Value = Right(v, Len(v) - 2)
                    .Offset(0, 1).Select '? select next cell in new row ?
                End With
                .Value = "" 'clear the original "Z" scan?
                Application.EnableEvents = True
            Else
                Me.Cells(.Row, .Column + 1).Select
            End If
        End If
    End With

    Exit sub

haveError:
    Msgbox Err.Description
    Application.EnableEvents = True

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...