It’s that time again folks. Time for some more #MacroMonday fun. Today I want to show you how to write a simple #Excel macro that will take a sentence (or a load of text) and split it into individual words. I want each word to be in its own cell in Column B of my Excel worksheet. Here is a sample of the original text and the desired outcome.
Preparing To Write The Macro.
First, you will need to open the Visual Basic Editor. There are two ways to do this. Either by hitting ALT +F11 or selecting the Developer Tab | Code Group | Visual Basic. Both methods have the same result. You then have a choice, you can either create a module to store your code either in your Personal Macro Workbook or in your current workbook. What’s the difference?. If you save the macro in your Personal Macro workbook it will be available for use in any of my Excel workbooks. If you store it in the current workbook then use is restricted to that workbook.
This macro will be useful in the future so I am going to save it in my Personal Macro Workbook.
More About Your Personal Macro Workbook (PMW).
If you want to read more about your Excel PMW then check out my blog posts below.
Preparing To Write The Macro.
Let’s start off the macro by inserting a New Module. Do this by selecting the Personal.xlsb workbook, then Insert Module. Type Sub then the name of your macro. In this example, I have called it simply ConvertToWords. Notice that Excel will automatically enter the end text End Sub to end the Sub Routine. We simply need to enter the rest of the code between these two lines.
Next, we will need to declare either one or more variable. This just ensures that Excel allocated some memory to store that information. We need to just declare two variables in the macro.
sText, in this case, represents our sentence which we are going to split into words. arText represents the array of cells that will contain the separated words in Column B in my worksheet.
Using The Range Object.
Now, we set the range object which is the representation of a cell (or cells) on your worksheet. In this example, we are setting sText as the value of cell A1.
Using The SPLIT Function.
Next, we use the SPLIT function to split the value of sText. the syntax of SPLIT is as follows.
Split ( expression [,delimiter] [,limit] [,compare] ) where
The string to split into substrings based on a delimiter. The delimiter Optional. The delimiter is used to split the expression into substrings. If not specified, the delimiter will default to a space character. The argument of limit is optional. This is the maximum number of substrings split from expression. If not specified, the limit will default to -1 which will split out all substrings. The compare argument is optional. This is the type of comparison to perform when parsing the substrings and can be one of the following:
Transposing The Sentence.
Finally, we use the Excel VBA Ctsr and Ubound functions. These convert the value in our range to a string value. Rhe range length is determined by 1+ the length of the arText array. Finally, the strings are transposed using the Transpose Worksheet Function.
Ending The Macro.
The routine then ends with the End Sub piece of code. This was already entered into the module for us when started the type the name of the Macro.
If you want more Excel and VBA tips then sign up to my monthly Newsletter where I share 3 Excel Tips on the first Wednesday of the month and receive my free Ebook, 30 Excel Tips.
Likewise, if you want to see all of the blog posts in the Macro Mondays Series Click The Link Below
So, Don’t forget to SUBSCRIBE to the How To Excel At Excel Newsletter for more tips the first Wednesday of the month.