Carole从其他程序将信息导入Excel,这通常在某些单元格中留有多余的空间。空格是单元格中唯一的内容,因此它们似乎是空的,但实际上不是。卡洛尔想知道消除这些不必要空间的最佳方法。

您可以使用两种方法。第一种是使用Excel的“查找和替换”功能。请按照下列步骤操作:

。按Ctrl + H以显示“查找和替换”对话框的“替换”选项卡。

。在“查找内容”框中,输入两个空格。

。确保“替换为”框为空。

。选中“匹配整个单元格内容”复选框。

。单击全部替换。

。重复步骤2到5,但这一次在步骤2中只使用一个空格。 。关闭查找和替换对话框。

另一个选择是使用“修剪”工作表功能。如果要修改的单元格都位于工作表的特定区域(例如单个列)中,则此方法很方便。例如,如果要除去D列中单元格的空格,可以使用以下公式:

=Trim(D1)

Trim函数返回单元格D1的内容,不带任何前导或尾随空格。然后,您可以复制该公式的结果,并使用“选择性粘贴”将值粘贴回到所需的任何单元格中。

当然,如果您需要处理大量工作表,或者例行地获取包含单元格中额外空格的工作簿,则更好的方法是创建一个可以消除空格的宏。也许最快的方法是检查工作表中的所有单元格并消除多余的空间:

Sub CleanSheet1()

For Each cell In ActiveSheet.UsedRange         cell.Value = Trim(cell)

Next cell End Sub

宏逐步遍历每个单元格,并使用Trim函数删除任何前导或尾随空格。这适用于所有单元格,但可能会产生不希望的结果,具体取决于数据的特征。如果您的单元格中有前导空格-并且想要这些空格-那么您将需要使用其他宏。此版本将提供更令人满意的结果:

Sub CleanSheet2()

Dim rCell As Range     Dim rText As Range

Set rText = Cells.SpecialCells( _       xlCellTypeConstants, _       xlTextValues)

For Each rCell In rText         If Trim(rCell.Value) = "" Then             rCell.ClearContents         End If     Next     Set rText = Nothing     Set rCell = Nothing End Sub

它仅检查那些包含常量的单元格(包括工作表中的所有文本),然后检查使用Trim函数是否会导致单元格为空。如果是这样,则清除该单元格。如果Trim函数不会导致单元格为空,则不会对该单元格进行任何更改。

注意:

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

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

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

本技巧(2883)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本:

链接:/ excelribbon-Getting_Rid_of_Spaces_in_Cells [摆脱单元格中的空间]。