转换电话号码(Microsoft Excel)
我们都已经在电视上看到了广告:“致电1-800-GET THIS,购买您的超锋利刀具。”您可能需要将电话号码从文本版本(如广告所示)转换为该文本代表的号码。以下宏DoPhone将为您执行转换魔术:
Sub DoPhone() Dim rngSrc As Range Dim lMax As Long, lCtr As Long Dim J As Integer Dim Phone As String, Digit As String Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address) lMax = rngSrc.Cells.Count For lCtr = 1 To lMax If Not rngSrc.Cells(lCtr).HasFormula Then Phone = rngSrc.Cells(lCtr).Value For J = 1 To Len(Phone) Digit = Ucase(Mid(Phone, J, 1)) Select Case Digit Case "A" To "P" Digit = Chr((Asc(Digit) + 1) \ 3 + 28) Case "Q" Digit = "7" 'May want to change Case "R" To "Y" Digit = Chr(Asc(Digit) \ 3 + 28) Case "Z" Digit = "9" 'May want to change End Select Mid(Phone, J, 1) = Digit Next J rngSrc.Cells(lCtr).Value = Phone End If Next lCtr End Sub
DoPhone过程将尝试在不包含公式的任何单元格中转换信息。您需要做的就是选择要转换的一个或多个单元格,然后运行该过程。结果是,单元格中的所有文本都将在电话上转换为等效的数字。因此,598-Tips变为598-8477。
您应该注意DoPhone的一个小特性,您可能需要更改它。某些电话将字母Q和Z分别识别为数字7和9。其他人仅将这些数字留在外面,或者将它们转换为0。如此处所述,DoPhone会将这些字母转换为7和9。您可以根据需要更改Select Case结构中的适当位置,因此可以根据需要将其更改为数字。满足您的需求。 (适当的地方在列表中被注释。)
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(2269)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: