
Tips.Net > ExcelTips Home > Data Entry > Copying Data > Getting Rid of Non-Printing Characters Intelligently
Summary: Is your worksheet, imported from an external source, plagued by non-printing characters that show up like small boxes on-screen? You can get rid of them using the various techniques described in this tip. (This tip works with Microsoft Excel 97, Excel 2000, Excel 2002, Excel 2003, and Excel 2007.)
If you work with files that originate from a non-Excel source, you can sometimes end up with characters in your cells that Excel doesn't know how to display properly. For instance, you may have a comma-delimited text file generated by your company's accounting software, and you load the file into Excel. In some cells you may notice that there are small boxes. These represent non-printing characters. Excel displays the small boxes so that you know the character is there, even though it cannot be displayed or printed.
To get rid of these characters you an try to use the Find and Replace feature of Excel. Try these steps:
This approach may or may not work, depending mostly on Excel and whether it let you accurately copy the offending character in step 1. If it does work, then you have learned a valuable technique for getting rid of the bad characters. If it doesn't work, then you should try a different approach.
One thing to try is to use Word in your "clean up" operations. Copy the data from Excel to a Word document (paste it as regular text), and then replace the offending characters. You can then paste the data back into Excel. Some people report that they get exactly the results they want by using this round-trip approach to working with the data.
You can, of course, use a macro to get rid of the offending characters. It isn't too difficult to create your own version of the CLEAN worksheet function that, instead of simply removing non-printing characters, replaces them with spaces. Consider the following example macro:
Function ReplaceClean(sText As String, Optional sSubText As String = " ")
Dim J As Integer
Dim vAddText
vAddText = Array(Chr(129), Chr(141), Chr(143), Chr(144), Chr(157))
For J = 1 To 31
sText = Replace(sText, Chr(J), sSubText)
Next
For J = 0 To UBound(vAddText)
sText = Replace(sText, vAddText(J), sSubText)
Next
ReplaceClean = sText
End Function
You use this function in the following manner within your worksheet:
=ReplaceClean(B14)
In this case, all non-printing characters in cell B14 are replaced with a space. If you want the characters replaced with something else, just provide the text to replace with. The following example replaces the non-printing characters with a dash:
=ReplaceClean(A1,"-")
The following usage simply removes the non-printing characters, the same as the CLEAN function:
=ReplaceClean(A1,"")
If you look back at the ReplaceClean macro presented earlier, you see that it uses the Replace function. This VBA function is not available in all the versions of VBA used with the different versions of Excel. If you try the macro and you get an error on one of the lines that use the Replace function, then use this version of the ReplaceClean macro instead:
Function ReplaceClean(sText As String, Optional sSubText As String = " ")
Dim J As Integer
Dim vAddText
Dim aWF As WorksheetFunction
Set aWF = Application.WorksheetFunction
vAddText = Array(Chr(129), Chr(141), Chr(143), Chr(144), Chr(157))
For J = 1 To 31
sText = aWF.Substitute(sText, Chr(J), sSubText)
Next
For J = 0 To UBound(vAddText)
sText = aWF.Substitute(sText, vAddText(J), sSubText)
Next
ReplaceClean = sText
Set aWF = Nothing
End Function
Tip #2947 applies to Microsoft Excel versions: 97 2000 2002 2003 2007
Save Time and Money! Many people need to keep track of employee time, but don't know where to start when it comes to creating a spreadsheet. Here's a way to save time, effort, and money with ready-to-use timesheet templates.
Check out Timesheet Templates today!
You can put times into a worksheet, but then what? Need to do calculations with times? How about working with elapsed time? Don't be confused; learn how easy it can be. (more information...)
Ask an Excel Question
Make a Comment
ExcelTips FAQ
ExcelTips Premium
Bugs and Pests Tips
ExcelTips
Family Tips
Health Tips
Home Tips
Organizing Tips
WordTips
Advertise on the
ExcelTips Site