ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Macro to Clean Special characters for a Range (https://www.excelbanter.com/excel-worksheet-functions/249898-macro-clean-special-characters-range.html)

Satish[_2_]

Macro to Clean Special characters for a Range
 
Can any one help me in cleaning special characters for a selection or
range using Macro.
Currently i am using =CLEAN( ) function for each column to remove
special characters,this is almost killing my valuable time.



Dave Peterson

Macro to Clean Special characters for a Range
 
Saved from a previous post.

Chip Pearson has a very nice addin that will help determine what that
character(s) is:
http://www.cpearson.com/excel/CellView.aspx

Depending on what that character is, you may be able to use alt-#### (from the
number keypad) to enter the character into the Other box in the text to columns
wizard dialog.

In fact, you may be able to select the character (in the formula bar), and copy
it. Then use ctrl-v to paste into that text to columns Other box.

You may be able to use Edit|Replace to change the character--Some characters can
be entered by holding the alt-key and typing the hex number on the numeric
keypad. For example, alt-0010 (or ctrl-j) can be used for linefeeds. But I've
never been able to get alt-0013 to work for carriage returns.

Another alternative is to fix it via a formula:

=substitute(a1,char(##),"")

Replace ## with the ASCII value you see in Chip's addin.

Or you could use a macro (after using Chip's CellView addin):

Option Explicit
Sub cleanEmUp()

Dim myBadChars As Variant
Dim myGoodChars As Variant
Dim iCtr As Long

myBadChars = Array(Chr(##)) '<--What showed up in CellView?

myGoodChars = Array("")

If UBound(myGoodChars) < UBound(myBadChars) Then
MsgBox "Design error!"
Exit Sub
End If

For iCtr = LBound(myBadChars) To UBound(myBadChars)
ActiveSheet.Cells.Replace What:=myBadChars(iCtr), _
Replacement:=myGoodChars(iCtr), _
LookAt:=xlPart, SearchOrder:=xlByRows, _
MatchCase:=False
Next iCtr

End Sub

If you're new to macros:

Debra Dalgleish has some notes how to implement macros he
http://www.contextures.com/xlvba01.html

David McRitchie has an intro to macros:
http://www.mvps.org/dmcritchie/excel/getstarted.htm

Ron de Bruin's intro to macros:
http://www.rondebruin.nl/code.htm

(General, Regular and Standard modules all describe the same thing.)

Satish wrote:

Can any one help me in cleaning special characters for a selection or
range using Macro.
Currently i am using =CLEAN( ) function for each column to remove
special characters,this is almost killing my valuable time.


--

Dave Peterson

MRT

Macro to Clean Special characters for a Range
 
Sub CleanSpecialCharacter()
Dim r As Range
For Each r In Selection
r.Value = Application.WorksheetFunction.Clean(r.Value)
Next r
End Sub

HTH
--
MRT

"Satish" wrote in message ...
Can any one help me in cleaning special characters for a selection or
range using Macro.
Currently i am using =CLEAN( ) function for each column to remove
special characters,this is almost killing my valuable time.


ryguy7272

Macro to Clean Special characters for a Range
 
This may help:

Delete All Hard Returns:


Sub Remove_CR_LF()
With Selection
..Replace What:=Chr(39), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
..Replace What:=Chr(146) & Chr(10), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
..Replace What:=Chr(180), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
End With
End Sub

Sub Remove_CR_LF()
With Selection
..Replace What:=Chr(160), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
..Replace What:=Chr(13) & Chr(10), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
..Replace What:=Chr(10), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
End With
End Sub


Ryan---

--
Ryan---
If this information was helpful, please indicate this by clicking ''Yes''.


"MRT" wrote:

Sub CleanSpecialCharacter()
Dim r As Range
For Each r In Selection
r.Value = Application.WorksheetFunction.Clean(r.Value)
Next r
End Sub

HTH
--
MRT

"Satish" wrote in message ...
Can any one help me in cleaning special characters for a selection or
range using Macro.
Currently i am using =CLEAN( ) function for each column to remove
special characters,this is almost killing my valuable time.

.


Satish[_2_]

Macro to Clean Special characters for a Range
 
On Dec 3, 1:28*am, ryguy7272
wrote:
This may help:

Delete All Hard Returns:

Sub Remove_CR_LF()
With Selection
.Replace What:=Chr(39), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
.Replace What:=Chr(146) & Chr(10), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
.Replace What:=Chr(180), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
End With
End Sub

Sub Remove_CR_LF()
With Selection
.Replace What:=Chr(160), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
.Replace What:=Chr(13) & Chr(10), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
.Replace What:=Chr(10), Replacement:=Chr(32), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
End With
End Sub

Ryan---

--
Ryan---
If this information was helpful, please indicate this by clicking ''Yes''..



"MRT" wrote:
Sub CleanSpecialCharacter()
Dim r As Range
For Each r In Selection
* r.Value = Application.WorksheetFunction.Clean(r.Value)
Next r
End Sub


HTH
--
MRT


"Satish" wrote in ...
Can any one help me in cleaningspecialcharactersfor a selection or
range usingMacro.
Currently i am using =CLEAN( ) function for each column to remove
specialcharacters,this is almost killing my valuable time.

.



Satish[_2_]

Macro to Clean Special characters for a Range
 
Thanks for the reply...This is what i am looking for.

On Dec 2, 8:34*pm, "MRT" wrote:

Sub CleanSpecialCharacter()
Dim r As Range
For Each r In Selection
* r.Value = Application.WorksheetFunction.Clean(r.Value)
Next r
End Sub




All times are GMT +1. The time now is 07:53 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com