VBA - Борьба с рабочим листом.Не работает без ошибок - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть лист, на котором наша оптовая команда должна ввести L09 Коды деталей и быстро увидеть, сколько у нас есть в наличии этого товара.Проблема в том, что новичкам может быть трудно выучить эти номера деталей, поскольку они не следуют простому правилу.Что я сделал, так это создал более простой для запоминания код: «Тип кабеля», «Размер сердечника» и «Длина обрезки», у них также есть возможность добавить «Цвет» и «Марка», разделенные пробелами.Их введенная строка может выглядеть как 6242y 2.5 100, или, возможно, 6242y 2.5 100 Grey и т. Д., И поэтому, где искать в моей отображенной таблице то, что они написали, зависит от того, сколько терминов они вставили. Как вы можете видеть из прикрепленногоМне нужно выбрать правильный столбец для поиска их кода, а затем сместить несколько столбцов назад, чтобы предложить правильный номер детали L09.

Я надеюсь, что контекст имеет смысл и поможет с приведенным нижекод.Идея состояла в том, чтобы новый стартер мог ввести что-то простое и заменить его на глазах ... Если бы кто-нибудь мог помочь мне исправить следующее, я был бы очень признателен:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim P, Products, S, Search As Range
Dim Column As String
Dim Counter As Integer
Dim Spaces As Long

'On Error Resume Next

Counter = 0

'For top table only
If Target.Column = 1 And Target.Row < 100 Then

    'Count spaces
    Spaces = UBound(Split(Target, " "), 1)

    Select Case Spaces

        Case Is = 2
            Column = "M"

        Case Is = 3
            Column = "O"

        Case Is = 4
            Column = "Q"

    End Select

    'When string has spaces
    If Spaces <> 0 Then

    'Set simple code range
    Set Search = Sheets("Cherries").Range(Column & 1 & ":" & Column & 10000)

        For Each S In Search

            If S = Target Then

                Target = S.Offset(0, 3 - 2 * Spaces)

            End If

        Next S

    End If

    Set Products = Sheets("Order Entry").Range("A3:A99")

    For Each P In Products

        If P.Value <> "" Then

            Counter = Counter + 1

        End If

    Next P

    Sheets("Order Entry").Rows("3:" & Counter + 11).Hidden = False

    Sheets("Order Entry").Rows(Counter + 11 & ":99").Hidden = True

End If

End Sub

К сожалению, яне уверен, какая строка содержит ошибку, так как сообщение об ошибке не выдается.

Спасибо за ваше время.

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