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