用于从第一次出现的数字中分割单元格的宏

时间:2014-02-27 04:21:31

标签: excel

我将这样的数据放在一个单元格中

Adadre Roos. 669.138 J2
 Aluminium Development Associat. 621.357.7:669.71 J3
 A.L.A. 669.711n j4

我希望文本部分是1列,而另一个

中的数字部分

所以有任何宏会找到第一个出现的数字并将其从那里分割到另一个

2 个答案:

答案 0 :(得分:0)

我从Web获得了以下代码。根据您的需要,希望有所帮助。的测试

Sub SplitText()


 Dim r As Range, rC As Range
    Dim Match, Matches
    Dim matchCount As Integer

    Set r = Range("A2", Range("A2").End(xlDown))
    With CreateObject("VBScript.RegExp")
        .Pattern = "(\d+|\D+)"
        .Global = True
        For Each rC In r
            Set Matches = .Execute(rC.Value)
            matchCount = 0
            For Each Match In Matches
                matchCount = matchCount + 1
                rC.Offset(, matchCount).Value = Match
            Next
        Next rC
    End With

end sub

运行代码后,结果将如下所示

enter image description here

答案 1 :(得分:0)

只需使用此数组公式即可获取文本部分:

=LEFT(A1;MIN(IFERROR(FIND({0;1;2;3;4;5;6;7;8;9};A1);""))-1)

A1和Down中的值,在B1

中写下第一个公式

您需要按Ctrl Shift Enter输入公式。

然后在C1写入(获取数字部分):

=SUBSTITUTE(A1;B1;"")

根据您的区域设置,您可能需要替换字段分隔符“;”通过“,”