数量宏优于库存

时间:2012-07-10 15:40:06

标签: excel vba excel-vba

我正在尝试让Excel作为库存扫描阅读器工作。我在扫描时遇到问题,因为它在我扫描时不断添加到col A,即使它是重复的,我希望它能够识别扫描的项目与上一次相同并添加到col QTY。如果任何人可以帮助我如何处理那些很棒的代码!

图片 - 它不会让我放一个,但COL A是条形码,COL B是描述,COL C是QTY。

1 个答案:

答案 0 :(得分:4)

将此代码放在工作表代码模块中(右键单击选项卡并选择“查看代码”)。

您的列表标题是A4(条形码)B4(说明)C4(计数)。 选择单元格A1并开始扫描。如果它在列表中找到匹配项,它将更新计数,如果没有,则添加新行。我只是输入值进行测试,但只要每次扫描都发送{enter},就应该用扫描仪以同样的方式进行测试。

Private Sub Worksheet_Change(ByVal Target As Range)

    Const SCAN_CELL As String = "A1"
    Const RANGE_BC As String = "A5:A500"
    Dim val, f As Range, rngCodes As Range

    If Target.Cells.Count > 1 Then Exit Sub
    If Intersect(Target, Me.Range(SCAN_CELL)) Is Nothing Then Exit Sub

    val = Trim(Target.Value)
    If Len(val) = 0 Then Exit Sub

    Set rngCodes = Me.Range(RANGE_BC)

    Set f = rngCodes.Find(val, , xlValues, xlWhole)
    If Not f Is Nothing Then
        With f.Offset(0, 2)
            .Value = .Value + 1
        End With
    Else
        Set f = rngCodes.Cells(rngCodes.Cells.Count).End(xlUp).Offset(1, 0)
        f.Value = val
        f.Offset(0, 1).Value = "enter description"
        f.Offset(0, 2).Value = 1
    End If

    Application.EnableEvents = False
    Target.Value = ""
    Application.EnableEvents = True

    Target.Select

End Sub