remove crlf

T

totalbiz

I am new to VBA. I need to select a column in the worksheet and remove all
carriage return/line feeds. I am using the following code I got off
different posts to this group. What happens is the loop runs forever. What
am I doing wrong?

Dim aCell As Range
Sub Remove_CR_LF()
For Each aCell In Selection
With Selection
.Replace What:=Chr(13) & Chr(10), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
End With
Next aCell
End Sub
 
D

Dave Peterson

It shouldn't run forever. It should only run for the number of cells in your
selected area.

But you're doing too much. You don't need to cycle through each cell. You can
select the range and do it in one Edit|replace (or VBA equivalent).

Option Explicit
Sub Remove_CR_LF()

Dim myRng as range
set myrng = activecell.entirecolumn

myrng.replace What:=Chr(13) & Chr(10), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False

End Sub

I'd use:

myrng.replace What:=vbcrlf, Replacement:=" ", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False

I think it's more self-documenting.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top