Thread: Spaces
View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Spaces

Richard's code doesn't run in xl97 because he uses the Replace command,
introduced in VBA 6 (xl2000 and later).

--
Regards,
Tom Ogilvy


"Arnie" wrote in message
om...
Wild Bill,

The code in question by Richard Daniels runs fine on Excel 2002 but
not on Excel 97.

Your comment "compress multiple spaces" and my comment "In Excel all
extra spaces are removed" may be open for interpretation. They seem
close enough to mean the same thing.

As for the TRIM function... The differences are subtle, however, I
believe the two TRIM functions operate differently. You correctly
state that "rng = WorksheetFunction.Trim(rng.Text)" works exactly
like using the TRIM function on a worksheet (removes
"extra"/"multiple" spaces). It should because you are calling a
workbook function. All I am suggesting is that the "native VBA" TRIM
function operates differently (it only removes spaces from before and
after the string, not within the string). But then, I could be
wrong...


(Wild Bill) wrote in message

...
On 27 Aug 2003 06:51:26 -0700,
(Arnie) wrote:
The VBA Trim function works differently than the Excel Trim function.
In Excel all extra spaces are removed, including those between words.


Really? Try the following in a cell
=TRIM("Arnie at ajcomputers")
or in VBA,
rng = WorksheetFunction.Trim(rng.Text)

Excel's trim does compress multiple spaces which might be useful, but at
any rate OP stated "beginning" twice so I suggested ltrim.

On 27 Aug 2003 06:51:26 -0700,
(Arnie) wrote:
Richard's solution is perfect.


That code won't execute for me. What version of Excel do you use?

On Wed, 27 Aug 2003 03:57:51 -0700, "Richard Daniels"
wrote:
Sub removeSpaces()
Dim rng As Range
With ActiveSheet
For Each rng In .UsedRange
If Left(rng.Text, 1) = " " Then
rng = Replace(rng.Text, " ", "")
End If
Next
End With
End Sub