需要将数据拆分为多个列

时间:2017-02-17 08:55:13

标签: excel-vba vba excel

我在一列中有数据,我想将其拆分为多列。 例如,我有像

这样的数据
123*4546.765,4653:342.324

我希望将其拆分为列中的123,列中的4546,列中的765,列中的4653等等...

1 个答案:

答案 0 :(得分:0)

尝试以下代码(使用RegEx)。

RegEx模式正在寻找任意连续的1到10位.Pattern = "[0-9]{1,10}"

然后,如果找到至少1个匹配,则循环所有匹配并输出它们(从单元格“A1”并向右移动一列)。

<强>代码

Option Explicit

Sub ExtractNumbers()

Dim Col As Long
Dim Reg1 As Object
Dim RegMatches As Variant
Dim Match As Variant

Set Reg1 = CreateObject("VBScript.RegExp")
With Reg1
    .Global = True
    .IgnoreCase = True
    .Pattern = "[0-9]{1,10}" ' Match any set of 9 digits
End With

Set RegMatches = Reg1.Execute("123*4546.765,4653:342.324") '<-- you can use a `Range` value instead of hard-code 

If RegMatches.Count >= 1 Then '<-- check that at least 1 match made with the RegEx
    Col = 1
    For Each Match In RegMatches
        MsgBox Match ' <-- output in msgbox
        Cells(1, Col).Value = Match '<-- output the numbers from Cell A1 and move one column to the right
        Col = Col + 1
    Next Match
End If

End Sub