【问题标题】:VBA/EXCEL: extract numbers from one cell that contained multiple values with commaVBA/EXCEL:从一个包含多个逗号值的单元格中提取数字
【发布时间】:2015-03-14 10:26:33
【问题描述】:

http://i.stack.imgur.com/53tz0.jpg 是图片。

你好,我想修改这段代码,让它理解多个值。我来的最好的是条形码扫描仪,我是vba 的新手,但我真的很喜欢它。这是一个有趣的项目,我这样做了,请帮助我。谢谢大家。

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

【问题讨论】:

  • 请描述代码做错了什么

标签: excel vba sorting multiple-columns


【解决方案1】:

要获取存储在一个单元格中的多个值,这些值由逗号或任何特殊字符分隔,您可以使用 vba 函数拆分。

例如,假设我们有一个单元格 C5,其中包含以下四个用逗号分隔的数字:

122.20,358.55,155.58,758.33

以下是如何使用 Split 函数返回一个数组,该数组存储单元格 C5 中的每个数字:

msgbox(split(range("c5"),",")(0))    'This will return 122.20
msgbox(split(range("c5"),",")(1))    'This will return 358.55
msgbox(split(range("c5"),",")(2))    'This will return 155.58
msgbox(split(range("c5"),",")(3))    'This will return 758.33

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多