Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() Hi All, I am having trouble getting the TextToColumns method of the range class to work as I need. The code I am using simplifies to the following: Sub TTC() Range("A1").TextToColumns _ Destination:=Range("A1"), _ DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=True, _ Tab:=False, _ Semicolon:=False, _ Comma:=False, _ Space:=False, _ Other:=True, _ OtherChar:=Chr(32) & Chr(32), _ FieldInfo:=Array(Array(1, 1), Array(2, 1)) End Sub The problem is that I cannot get it to recognise two spaces as the delimiter (as opposed to a single space). I have tried replacing two spaces (" ") with the expression: Chr(32) & Chr(32) but that still doesn't seem to work. If I put "a b" (="a" & chr(32) & "b") into A1 and run that code, it still splits the two letters into A1 and B1. The data set is of a form where the delimiter is two spaces, but a single space legitimately arises within a field ("FirstName LastName") would be an example. Can anyone advise on what I am doing wrong? It seems to be something that should be quite a simple and commonplace requirement, so perhaps I am just having a case of short-sightedness? Thanks, Alan. |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Alan,
With the 'Treat consecutive delimiters as one" selected in Excel or (in VBA) ConsecutiveDelimiter:=True, set the delimiter to " " (Chr(32)) and both spaces will be teated as a single space. In short, set the delimiter to a single space chr(32)) and all should be well! --- Regards, Norman "Alan" wrote in message ... Hi All, I am having trouble getting the TextToColumns method of the range class to work as I need. The code I am using simplifies to the following: Sub TTC() Range("A1").TextToColumns _ Destination:=Range("A1"), _ DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=True, _ Tab:=False, _ Semicolon:=False, _ Comma:=False, _ Space:=False, _ Other:=True, _ OtherChar:=Chr(32) & Chr(32), _ FieldInfo:=Array(Array(1, 1), Array(2, 1)) End Sub The problem is that I cannot get it to recognise two spaces as the delimiter (as opposed to a single space). I have tried replacing two spaces (" ") with the expression: Chr(32) & Chr(32) but that still doesn't seem to work. If I put "a b" (="a" & chr(32) & "b") into A1 and run that code, it still splits the two letters into A1 and B1. The data set is of a form where the delimiter is two spaces, but a single space legitimately arises within a field ("FirstName LastName") would be an example. Can anyone advise on what I am doing wrong? It seems to be something that should be quite a simple and commonplace requirement, so perhaps I am just having a case of short-sightedness? Thanks, Alan. |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
"Norman Jones" wrote in
message ... Hi Alan, With the 'Treat consecutive delimiters as one" selected in Excel or (in VBA) ConsecutiveDelimiter:=True, set the delimiter to " " (Chr(32)) and both spaces will be teated as a single space. In short, set the delimiter to a single space chr(32)) and all should be well! Hi Norman, If I do that, it will split the "FirstName LastName" field into two cells though. Or am I misunderstanding your suggestion? Thanks, Alan. |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Alan,
I mis-read. Try: Sub Tester() Selection.Replace What:=" ", _ Replacement:="#", _ LookAt:=xlPart, _ SearchOrder:=xlByColumns, _ MatchCase:=False Selection.TextToColumns Destination:=Range("A6"), _ DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=True, _ Tab:=True, _ Semicolon:=False, _ Comma:=False, _ Space:=False, _ Other:=True, _ OtherChar:="#" End Sub --- Regards, Norman "Alan" wrote in message ... "Norman Jones" wrote in message ... Hi Alan, With the 'Treat consecutive delimiters as one" selected in Excel or (in VBA) ConsecutiveDelimiter:=True, set the delimiter to " " (Chr(32)) and both spaces will be teated as a single space. In short, set the delimiter to a single space chr(32)) and all should be well! Hi Norman, If I do that, it will split the "FirstName LastName" field into two cells though. Or am I misunderstanding your suggestion? Thanks, Alan. |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
"Norman Jones" wrote
in message ... Hi Alan, I mis-read. No worries - I thought I was missing something at my end! Try: Sub Tester() Selection.Replace What:=" ", _ Replacement:="#", _ LookAt:=xlPart, _ SearchOrder:=xlByColumns, _ MatchCase:=False Selection.TextToColumns Destination:=Range("A6"), _ DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=True, _ Tab:=True, _ Semicolon:=False, _ Comma:=False, _ Space:=False, _ Other:=True, _ OtherChar:="#" End Sub Superb - so simple and obvious (now) of course! Thank you so much - I really appreciate your assistance. Regards, Alan. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
VLookup Method for Comma Delimited Field | Excel Discussion (Misc queries) | |||
Double quotes when exporting to tab delimited file | Excel Discussion (Misc queries) | |||
Convert excel (.xls) to tab delimited (.txt) without double quotat | Excel Discussion (Misc queries) | |||
Tab delimited text file import on double click | Excel Discussion (Misc queries) | |||
What does TrailingMinusNumbers do in the TextToColumns Method | Charts and Charting in Excel |