Hello basic,
This macro will separate the data into 2 columns: A and B. The example workbook has a button on "Sheet1" to run the macro.
'Thread: http://www.excelforum.com/excel-programming/755186-parsing-text-to-columns.html
'Poster: basic
'Written: December 01, 2010
'Author: Leith Ross (www.excelforum.com & www.thecodecage.com)
Sub ParseData()
Dim Cell As Range
Dim Rng As Range
Dim RegExp As Object
Dim S As String
Dim T As Boolean
Dim X As String
Set Rng = Worksheets("Sheet1").Range("A1:A9")
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.IgnoreCase = True
RegExp.Pattern = "([\w\-\s\(]+)(?:\)|\,|\s\-).+\[(.+)\].*"
For Each Cell In Rng
S = Cell.Value
If RegExp.Test(S) Then
X = RegExp.Replace(S, "$1")
If InStr(1, X, "(") Then Cell.Value = X & ")" Else Cell.Value = X
Cell.Offset(0, 1).Value = RegExp.Replace(S, "$2")
End If
Next Cell
Rng.Resize(ColumnSize:=2).EntireColumn.AutoFit
End Sub
Bookmarks