VBA-挣扎于worksheet_change。不工作,没有错误

时间:2018-11-16 09:25:08

标签: vba

我有一张工作表,我们的批发团队将在其中输入L09 Part Codes,并迅速查看我们有多少库存。问题在于,新入门者可能会因为不遵循简单的规则而难以学习这些部件号。我所做的是创建了一个更容易记住的代码,即:“电缆类型”&“核心尺寸”&“剪切长度”,它们还可以选择添加“颜色”和“品牌”,并用空格分隔。 他们输入的字符串可能看起来像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

不幸的是,由于没有错误消息,我不确定哪一行是错误的。

谢谢您的时间。

0 个答案:

没有答案