Excel中长数字的快速转换

IT商界

  熟悉Excel 2000/2002的用户都知道,当输入的数字超过11位后,Excel会智能地将它转换成指数形式的科学计数法,有的时候(如在输入身份证号码、手机号码时)并不需要这一自动转换功能,只要在输入数字时在前面加上一个单撇号“'”,这样就可以输入任意长的数字了。

  但是,如果在已有的Excel文档(或是用一些档案管理系统生成的Excel文档)中存在上千条用指数形式的科学计数法表示的记录(这种记录以身份证号码居多),难道我们不厌其烦地在一条一条的记录前面加单撇号“'”吗?是不是有其他更好的办法呢?利用Excel中提供的VBA(Visual Basic for Application)编程功能,我们可以很容易地解决这个问题。

  1.在Excel 2000/2002中输入Visual Basic程序。打开Excel 2000/2002,选择“工具→宏→Visual Basic编辑器”选项,进入Visual Basic编辑器,输入如下的代码(图1):

  Sub CorrectionDigital()

  Dim i, j As Integer

  Dim Row, Col As Integer

  Row = Selection.Rows.Count  '选中的行数

  Col = Selection.Columns.Count   '选中的列数

   For i = 1 To Col

  For j = 1 To Row

   ActiveCell.Formula = "'" + ActiveCell.Formula '转换一个单元格

   ActiveCell.Offset(1, 0).Select     '单元格下移一个位置

  Next j

  ActiveCell.Offset(-Row, 1).Select    '本列已经转换完成,转到下一列

   Next i

   ActiveCell.Offset(0, -Col).Select     '回到起始位置

  End Sub

  2.在工具栏添加自定义按钮。关闭Visual Basic编辑器,回到Excel,选择“工具→自定义”命令,单击自定义对话框的“命令”选项,选择“宏”,将“自定义按钮”拖到Excel的工具栏,如图2所示。

  3.编辑自定义按钮。选中自定义按钮,单击鼠标右键,在弹出菜单的“命名”栏中输入“长数字转换(&C)”,并将“图标与文字”选中。当然,还可以更改按钮的显示图标。指定宏,执行“指定宏”命令,在弹出的“指定宏”对话框,选中Sheet1.CorrectionDigital后点“确定”,返回Excel。

  4.转换数字。选中要转换的数字的单元格,点击刚刚添加到工具栏上的“长数字转换”按钮,就可完成数字的转换了(图3)。如果是第一次使用宏,Excel会弹出询问是否启用宏的对话框(因为宏可能会携带病毒),我们点击启用宏(图4)。

  小结:实际上,Microsoft Office中提供了功能强大的VBA编程,如果我们充分利用好这一功能,将会大大地提高我们的工作效率,有兴趣的朋友不妨试试。