如果您使用源自非Excel来源的文件,则有时可能会在单元格中以Excel不知道如何正确显示的字符结尾。例如,您可能有一个由公司的会计软件生成的逗号分隔的文本文件,然后将该文件加载到Excel中。在某些单元格中,您可能会注意到有一些小盒子。这些代表非打印字符。 Excel将显示小方框,即使您无法显示或打印该字符,也可以知道其中的字符。

要摆脱这些字符,您可以尝试使用Excel的“查找和替换”功能。请尝试以下步骤:

。在包含一个小框的单元格中,突出显示该框,然后按Ctrl + C。这会将字符复制到剪贴板。

。按Ctrl + H。 Excel将显示“查找和替换”对话框的“替换”选项卡。 (请参见图1。)

。将插入点放在“查找内容”框中,按Ctrl + V。这会将剪贴板的内容(有问题的字符)粘贴到“查找内容”框中。字符很可能看起来不像您在步骤1中选择并复制的小框。 。如果在步骤3中未粘贴任何内容,请关闭对话框,然后重试步骤。如果仍然没有粘贴任何内容,则将无法使用“查找并替换”来摆脱非打印字符,并且可以跳过其余步骤。

。如果只想删除字符,请确保“替换为”框中没有任何内容。如果要用空格替换字符,请在“替换为”框中放置一个空格。

。单击全部替换。

此方法可能有效,也可能无效,主要取决于Excel以及它是否允许您在步骤1中实际复制有问题的字符。如果它有效,则说明您已学到了一种消除不良字符的有价值的技术。如果不起作用,则应尝试其他方法。

可以尝试的一件事是在“清理”操作中使用Word。将数据从Excel复制到Word文档(将其粘贴为常规文本),然后替换有问题的字符。然后,您可以将数据粘贴回Excel。有人报告说,通过使用这种往返方法来处理数据,他们获得了想要的结果。

当然,您可以使用宏摆脱有问题的字符。

创建自己的CLEAN工作表函数版本并不是太困难,它可以代替空格,而不是简单地删除非打印字符。考虑以下示例宏:

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

您可以在工作表中以以下方式使用此功能:

=ReplaceClean(B14)

在这种情况下,单元格B14中的所有非打印字符都将替换为一个空格。如果要用其他字符替换字符,只需提供要替换的文本即可。以下示例将非打印字符替换为破折号:

=ReplaceClean(A1,"-")

以下用法与CLEAN函数相同,只是删除了非打印字符:

=ReplaceClean(A1,"")

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

链接:/ excelribbon-ExcelTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(6126)适用于Office 365中的Microsoft Excel 2007、2010、2013、2016、2019和Excel。您可以在此处找到适用于Excel的较旧菜单界面的本技巧的版本:

链接:/ excel-Getting_Rid_of_Non-Printing_Characters_Intelligently [智能地摆脱非打印字符]。