Excel 如何将带有数字的字符串拆分并将结果输出到不同的行/列中?

Excel 如何将带有数字的字符串拆分并将结果输出到不同的行/列中?,excel,vba,Excel,Vba,我的工作表的E列中有一些字符串,我想分别将“01”和“20191203234500”提取到F行和G行。对于“2019120324500”,我也希望在两者之间添加一个空格,从而得到“20191203 234500” 数字可以是可变的;字符、分隔符和单词永远不会更改,但有时会附带文件扩展名: 例1 家茶垃圾箱\蜂巢垃圾箱01垃圾箱\脚垫20191203234500脚垫文件 例2 hometeastrash_beehivetester01trash_tepotts20191203234500tepot

我的工作表的E列中有一些字符串,我想分别将“01”和“20191203234500”提取到F行和G行。对于“2019120324500”,我也希望在两者之间添加一个空格,从而得到“20191203 234500”

数字可以是可变的;字符、分隔符和单词永远不会更改,但有时会附带文件扩展名:

例1

家茶垃圾箱\蜂巢垃圾箱01垃圾箱\脚垫20191203234500脚垫文件

例2

hometeastrash_beehivetester01trash_tepotts20191203234500tepotsFile.txt

以下是预期结果的图片:


我使用wks.Cells(BlankRow,6.Value=WorksheetFunction.Transpose(split(File.Name,“”))尝试了split函数,但是它只将“hometeatrash”提取到第F行,而我希望从文件名中提取“01”。

在这种情况下,我假设带有数字的字符数没有改变

 Sub test()
    Dim xLen As Long
    Dim xStr As String, xNum As String
    Dim StringToSearch As String
    Dim ws As Worksheet

'Change accordingly
    Set ws = ActiveSheet
    With ws
        StringToSearch = .Range("E1").Value 'Change accordingly

        xLen = VBA.Len(StringToSearch)

        For i = 1 To xLen

            xStr = VBA.Mid(StringToSearch, i, 1)

            If InStr("0123456789", xStr) Then

                xNum = xNum & xStr

            End If

        Next i
        .Range("F1") = Left(xNum, 2)
        .Range("G1") = Right(xNum, 14)
        .Range("G1").NumberFormat = "#"
    End With

End Sub

在本例中,我假设数字中的字符数不变

 Sub test()
    Dim xLen As Long
    Dim xStr As String, xNum As String
    Dim StringToSearch As String
    Dim ws As Worksheet

'Change accordingly
    Set ws = ActiveSheet
    With ws
        StringToSearch = .Range("E1").Value 'Change accordingly

        xLen = VBA.Len(StringToSearch)

        For i = 1 To xLen

            xStr = VBA.Mid(StringToSearch, i, 1)

            If InStr("0123456789", xStr) Then

                xNum = xNum & xStr

            End If

        Next i
        .Range("F1") = Left(xNum, 2)
        .Range("G1") = Right(xNum, 14)
        .Range("G1").NumberFormat = "#"
    End With

End Sub