智能摆脱非打印字符(Microsoft Excel)
如果您使用源自非Excel来源的文件,则有时可能会在单元格中以Excel不知道如何正确显示的字符结尾。例如,您可能有一个由公司的会计软件生成的逗号分隔的文本文件,然后将该文件加载到Excel中。在某些单元格中,您可能会注意到有一些小盒子。这些代表非打印字符。 Excel将显示小方框,即使您无法显示或打印该字符,也可以知道其中的字符。
要摆脱这些字符,请尝试使用Excel的“查找和替换”功能。请尝试以下步骤:
。在包含一个小框的单元格中,突出显示该框,然后按Ctrl + C。这会将字符复制到剪贴板。
。从“编辑”菜单中选择“替换”,或按Ctrl + H。 Excel将显示“查找和替换”对话框的“替换”选项卡。 (请参见图1。)
。将插入点放在“查找内容”框中,按Ctrl + V。这会将剪贴板的内容(有问题的字符)粘贴到“查找内容”框中。字符很可能看起来不像您在步骤1中选择并复制的小框。 。如果在步骤3中未粘贴任何内容,请关闭对话框,然后重试步骤。如果仍然没有粘贴任何内容,则您将无法使用“查找并替换”来摆脱非打印字符,并且可以跳过其余步骤。
。如果只想删除字符,请确保“替换为”框中没有任何内容。如果要用空格替换字符,请在“替换为”框中放置一个空格。
。单击全部替换。
这种方法可能有效,也可能无效,主要取决于Excel以及它是否可以让您在步骤1中准确地复制有问题的字符。如果它有效,则说明您已掌握了一种消除不良字符的有价值的技术。如果不起作用,则应尝试其他方法。
可以尝试的一件事是在“清理”操作中使用Word。将数据从Excel复制到Word文档(将其粘贴为常规文本),然后替换有问题的字符。然后,您可以将数据粘贴回Excel。有人报告说,通过使用这种往返方法来处理数据,他们获得了想要的结果。
当然,您可以使用宏摆脱有问题的字符。
创建自己的CLEAN工作表函数版本并不是太困难,它可以代替空格,而不是简单地删除非打印字符。考虑以下示例宏:
Function ReplaceClean1(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 ReplaceClean1 = sText End Function
您可以在工作表中以以下方式使用此功能:
=ReplaceClean1(B14)
在这种情况下,单元格B14中的所有非打印字符都将替换为一个空格。如果要用其他字符替换字符,只需提供要替换的文本即可。以下示例将非打印字符替换为破折号:
=ReplaceClean1(A1,"-")
以下用法与CLEAN函数相同,只是删除了非打印字符:
=ReplaceClean1(A1,"")
如果回头看前面介绍的ReplaceClean1宏,您会看到它使用了Replace函数。此VBA功能并非在与不同版本的Excel一起使用的所有VBA版本中都可用。如果您尝试使用该宏,但在使用“替换”功能的其中一行上出现错误,请改用以下版本的ReplaceClean宏:
Function ReplaceClean2(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 ReplaceClean2 = sText Set aWF = Nothing End Function
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
链接:/ excelribbon-ExcelTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(2947)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本:
链接:/ excelribbon-Getting_Rid_of_Non-Printing_Characters_Intelligently [智能地摆脱非打印字符]。