It would appear that whatever Parse can do, TextToColumns can do; but not vice-versa. Parse does not have the ability to use a user-defined delimiter; however what I can see that is nice about Parse is that you can easier define
where to split the data for a shorter Fixed Width parsing, such as Phone Numbers, SSN, etc.
TextToColumns requires that you use a series of array(x,y) where x is the character to begin at, and y is the data type to store the value.
So, to split 123-456-7890 into three columns, one with area code, one with the 3-digit prefix, and the last with the 4-digit suffix; text to columns would require you to state that split as Array(Array(0, 1), Array(3, 9), Array(4, 1), Array(7, 9), Array(8, 1)). Parse would require you to state it as "[xxx] [xxx] [xxxx]".
A few things to note here:
- Parse will only work on strings.
- When stating the ParseLine in parse, it is a literal string comparison where the left/right brackets define what to import. So, if we were to look at the string "123-456-7890", we want to split it as shown above. Looking at the string, we can imagine brackets like "[123]-[456]-[7890]" (we don't want to import those pesky hyphens). Anything outside of the brackets becomes a null space, anything inside becomes an x: "[xxx] [xxx] [xxxx]".
- Parse can logically guess how you want to split your data if it appears to have some sort of delimiting factor (based on the item in the top left cell)
Hope that sheds some light on the Parse method a bit. Cheers!