当您将文本文件中的邮政编码导入Excel工作簿时,Excel会将值转换为数字而不是邮政编码的情况并不少见。这导致从邮政编码中删除前导零,这显然会在以后将数据用于其预期目的时引起问题。

当然,一种解决方案是简单地更改用于邮政编码单元格的显示格式。这可能适用于显示,但是基础数据仍然缺少前导零。更好的解决方案是使用一个宏,该宏会在单元格中的信息中添加前导零。

下面的宏就是这样做的:

Sub MakeZIPText()

Dim ThisCell As Range     Application.ScreenUpdating = False     'Make sure format is text     Selection.NumberFormat = "@"

For Each ThisCell In Selection         'Strip the leading apostrophe, if any         If Left(ThisCell, 1) = "'" Then             ThisCell = Mid(ThisCell, 2, 99)

End If         'It's a 5-digit ZIP Code         If Len(ThisCell) <= 5 Then             ThisCell = "'" & Right("00000" & ThisCell, 5)

Else             ThisCell = "'" & Right("00000" & ThisCell, 10)

End If     Next ThisCell     Application.ScreenUpdating = True End Sub

要使用宏,只需选择包含邮政编码的单元格范围,然后运行宏。宏实际上会更改单元格的内容-单元格将不再包含数字值(原始问题的原因),而将包含文本值。这允许前导零出现在邮政编码的开头。

注意:

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

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

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

链接:/ excelribbon-Adding_Leading_Zeroes_to_ZIP_Codes [在邮政编码中添加前导零)。