当您将文本文件中的邮政编码导入Excel工作簿时,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培训的来源。

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

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