我正在尝试使用VBA来使用连字符和正斜杠作为分隔符来分隔单元格中的文本。使用其中一个相当简单。但是,这些字符都不是Excel中的标准分隔符,我无法弄清楚如何使用两个自定义分隔符。
我知道Excel具有更容易使用的文本到列功能,并且不需要我编写任何代码,但这是需要它在VBA中的大型项目的一部分。 / p>
这是我的代码。
Dim wireIDCell As Range
Set wireIDCell = Range("A1")
wireIDCell.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
Other:=True, OtherChar:="/"
尝试用字符串函数做某种魔术将是我的下一个想法,但我想知道是否有人在那里有任何更好的想法
答案 0 :(得分:1)
在@Jeeped建议限制为单个分隔符之后,我使用SUBSTITUTE函数用所有实例的正斜杠替换连字符。最后根据宏记录器添加了Text-To-Column的VBA代码,即未简化。这是因为我希望OP具有灵活性,以便为更多的分隔符实例提供服务。 PL。试试这个:
Sub Text_to_col()
Dim rng As Range
Dim r As Range
Set rng = ActiveSheet.UsedRange
For Each r In rng
r.Value = Application.WorksheetFunction.Substitute(r.Value, "-", "/")
Next r
With ActiveSheet.UsedRange.Columns("A").Cells
.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="/", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), _
TrailingMinusNumbers:=True
End With
End Sub
[![snapshot of sample data and results][1]][1]