Text to column:
Excel offers a built in function which can convert a running string into columns based on delimiter. In this article we will see how we can achieve text to column conversion. If you want to try manually please follow given steps:
- Select range or cells contain text that you would like to convert into columns (refer figure “rawData’)
- Locate Date ribbon tab
- Click on Text to Column button under Data Tools group (refer figure 1.0)
- A popup comes select Delimited (refer figure 1.1)
- Under delimiter group check Other and type hyphen (“-“) you can put your own delimiter as per your string. As soon as you put the hyphen the preview changes by which you can determine the output.
- Click Next and it will prompt for choose column data formatting (refer figure 1.2)
- Say Finish and your text is converted into column as shown in figure 1.3

Text to Column dialog:

Delimiter settings:

Set column data types:

Finally data is converted as below:

Let’s put some code to automate the same task. Point to be take we are using VSTO .Net C# and VB style code in below example hence following prerequisites are advised:
- Visual Studio 2015 or above having Microsoft Office for Developer Tool installed
- Create Excel Addin in C# or VB code style (Visual Studio Tools for Office)
- Excel 2010 or above
- Create a ribbon designer and put button
C# code example:
private void btnTextToColumn_Click(object sender, RibbonControlEventArgs e) { //Retain selection excel.Range oRange = Globals.ThisAddIn.Application.Selection; //Get active sheet reference excel.Worksheet oWorksheet = Globals.ThisAddIn.Application.ActiveSheet; //Set a target range excel.Range oTargetRange = oWorksheet.Range["A1:A3"]; //Put query to convert text to column oRange.TextToColumns(oTargetRange, excel.XlTextParsingType.xlDelimited, excel.XlTextQualifier.xlTextQualifierDoubleQuote, false, false, false, false, false, true, "-"); }
VB.Net code example:
Private Sub btnTextToColumns_Click(sender As Object, e As RibbonControlEventArgs) Handles btnTextToColumns.Click 'Retain selection Dim oRange As excel.Range oRange=Globals.ThisAddIn.Application.Selection 'Get active sheet reference Dim oWorksheet As excel.Worksheet oWorksheet=Globals.ThisAddIn.Application.ActiveSheet 'Set a target range Dim oTargetRange As excel.Range oTargetRange=oWorksheet.Range("A1:A3") 'Put query to convert text to column oRange.TextToColumns(oTargetRange, excel.XlTextParsingType.xlDelimited, excel.XlTextQualifier.xlTextQualifierDoubleQuote, false, false, false, false, false, true, "-") End Sub
VBA code example:
Public Sub TextToColumn() 'get selection into range Dim oRange As Range Set oRange = Selection 'get active sheet reference Dim oWorksheet As Worksheet Set oWorksheet = ActiveSheet 'get target range Dim oTargetRange As Range Set oTargetRange = oWorksheet.Range("A1:A3") 'Fire query to perform text to column conversion oRange.TextToColumns Destination:=oTargetRange, DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _ :="-" End Sub
Next >> Remove duplicates from Excel