从字符串中提取数字组并将它们分开

时间:2018-02-20 08:19:20

标签: excel-vba excel-2007 vba excel

我有一个VBA宏来从字符串中提取数字序列并将它们分开 例如,单元格A1值为Order No.2 123 Order No.3 234 Order No.4 345
在宏之后,单元格B1值应为123, 234, 345
由于A & BBBOrder No.A BBB的字符数不固定,例如Order No.324 1814406,我不能使用左侧函数来清除特定数量的char来解决问题。有人可以给我一些建议吗?

如果我能为您澄清任何事情,请告诉我 下面是我现在拥有的宏,这可以清除非数字字符并返回2, 123, 3, 234, 4, 345

Sub Testing()
str = Range("A1")
For x = 1 To Len(Range("A1"))
    If Not IsNumeric(Mid(str, x, 1)) Then 
        Mid(str, x) = " "
    End If
Next x
    Range("B1") = Replace(Application.Trim(str), " ", ", ")
End Sub

1 个答案:

答案 0 :(得分:1)

也许Split函数可以像那样有用

Option Explicit

Sub GetData()
    Dim inp As String
    inp = "Order No.221 123 Order No.13 234 Order No.4 345"
    Dim v As Variant
    v = Split(inp, " ")
    Dim i As Long
    For i = LBound(v) + 2 To UBound(v) Step 3
        Debug.Print v(i)
    Next i
End Sub