【问题标题】:Extract number groups from a string and separate them从字符串中提取数字组并将它们分开
【发布时间】:2018-07-30 12:56:42
【问题描述】:

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

如果我可以为您澄清任何事情,请告诉我。
下面是我现在的宏,这个可以清除非数字字符并返回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

【问题讨论】:

  • 我的建议:您可以使用像 regex101.com/r/E1Q6FL/1 这样的正则表达式来做到这一点。有几个教程如何在 VBA 中使用正则表达式(在 Stack Overflow 和 Google 上都有)。

标签: excel excel-2007 vba


【解决方案1】:

也许拆分功能可能会像那样有用

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

【讨论】:

    猜你喜欢
    • 2018-01-01
    • 2020-06-15
    • 1970-01-01
    • 2017-10-01
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    相关资源
    最近更新 更多