Excel 拆分但保留分隔符
我一直在使用一个函数来拆分字符串,但保留其分隔符Excel 拆分但保留分隔符,excel,vba,Excel,Vba,我一直在使用一个函数来拆分字符串,但保留其分隔符 Function SplitButRetainDelims(ByVal text As String, ByVal delimiters As String) As String() Dim Arr() As String, currentDelim As String Dim i As Long For i = 1 To Len(delimiters) currentDelim = Mid$(deli
Function SplitButRetainDelims(ByVal text As String, ByVal delimiters As String) As String()
Dim Arr() As String, currentDelim As String
Dim i As Long
For i = 1 To Len(delimiters)
currentDelim = Mid$(delimiters, i, 1)
Arr = Split(Replace(text, currentDelim, currentDelim & "~"), "~")
Next
SplitButRetainDelims = Arr
End Function
问题是我现在的方式
Arr = Split(Replace(text, currentDelim, currentDelim & "~"), "~")
每次将仅使用当前分隔符中的拆分来覆盖数组。因此,它不再保持以前迭代的进度,而是重置
我以前几乎得到了一个可以接受的解决方案,但它太复杂了,不能提供太多的好处
编辑:示例
SplitButRetainDelims("potato (onion/soup / Green BEANS", " ()/")
= ("potato", " ", "(", "onion", "/", "soup", " ", "/", "Green", " ", "BEANS")
在完成所有更换之前,不要进行拆分:
Function SplitButRetainDelims(ByVal text As String, ByVal delimiters As String) As String()
Dim Arr() As String, currentDelim As String
Dim i As Long
For i = 1 To Len(delimiters)
currentDelim = Mid$(delimiters, i, 1)
text = Replace(text, currentDelim, "~" & currentDelim & "~")
Next
text = Replace(text, "~~", "~")
Arr = Split(text, "~")
SplitButRetainDelims = Arr
End Function
请提供一些测试数据和预期输出。这是朝着正确方向迈出的一步,是否也可以将分隔符强制放入自己的“单元格”@marucciboy2,然后您需要用拆分值包装除味器。见编辑。谢谢,斯科特,你是我的朋友hero@Marcucciboy2请参见“新建编辑”,添加了一个检查,以确保分隔符紧随其后时仅出现一个分隔符,而不是两个分隔符。