贾斯汀有他通常在工作表中使用的部件号,例如660501C016971。他想对单元格应用自定义格式,并在适当的位置将零件号自动显示为破折号,例如6605-01-C01-6971。

不幸的是,这不能使用自定义格式来完成。为什么?因为自定义格式用于显示数字,而不是文本。有一种文本格式,用“ at符号”(@)表示,仅此而已;没有其他人,也没有其他人可以定义。

由于无法使用自定义格式,因此需要一种解决方法。一种方法是检查您的零件号,并查看零件号中的文本部分是否可以删除并且零件号仍然可用。例如,贾斯汀的电话号码是660501C016971。如果零件号的格式始终在零件号的同一点上要求字母C(并且那里没有其他可能的字母),那么您可以简单地删除C并留下数字660501016971。因为它是一个数字,您可以为其开发自定义格式,在适当的位置包含破折号,在适当的位置包含字母C。自定义格式如下所示:

0000-00-C00-0000

将格式应用于包含数字660501016971的单元格后,最终将显示正确格式的零件号:

6605-01-C01-6971。但是,这种方法确实有缺点。最大的缺点是,如果您想将零件号导出到另一个程序(也许作为CSV文件),最终导出的是没有格式或字母C的原始编号。

另一个解决方法是使用公式以所需的格式显示零件号。您可以将它们输入到没有破折号的单元格中,然后使用公式在适当的位置添加破折号。

然后,在创建报告时,您只需隐藏包含零件号而不是破折号的列。如果单元格A1中没有破折号,则下面的公式将起作用:

=LEFT(A1,4) & "-" & MID(A1,5,2) & "-" & MID(A1,7,3) & "-" & RIGHT(A1,4)

如果您使用大量零件号,则可能需要一种轻松添加和删除破折号的方法。最好的方法是使用宏。您可以开发一个宏,使您可以在选定单元格区域中从零件号中添加和删除破折号。下面是这种宏的一个示例。

Sub DashesIn()

DoDashes ("In")

End Sub
Sub DashesOut()

DoDashes ("Out")

End Sub
Private Sub DoDashes(What As String)

Dim c As Range     Dim J As Integer

For Each c In Selection.Cells         If c.Value <> "" Then             J = InStr(c.Value, "-")

Select Case What                 Case "Out"

While J > 0                         c.Value = Left(c.Value, J - 1) & _                           Mid(c.Value, J + 1, Len(c.Value))

J = InStr(c.Value, "-")

Wend                 Case "In"

If J = 0 Then                         c.Value = _                           Left(c.Value, 4) & "-" & _                           Mid(c.Value, 5, 2) & "-" & _                           Mid(c.Value, 7, 3) & "-" & _                           Right(c.Value, 4)

End If             End Select         End If     Next c End Sub

请注意,此清单中实际上有三个宏。第一个(DashesIn)在零件号上添加破折号,而第二个(DashesOut)

删除它们。只需选择包含零件号的单元格,然后运行将执行您要完成的操作的宏。

DashesIn和DashesOut都调用公用例程DoDashes来实际完成工作。宏检查选择中的所有单元格,然后对这些单元格的内容执行需要执行的任何操作。

注意:

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

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

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

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

链接:/ excel-Using_a_Custom_Format_to_Add_Dashes [使用自定义格式添加短划线]。