有些情况下,我们需要给单元格中的值添加前缀,例于对于跨多个不同的数据集查找编号时,因为这些编号可能相同,添加前缀能够区分它们。
对于少量的数据来说,手工添加或者使用公式是很方便的,但是,如果有成千上万的数据,最好使用程序来帮助我们完成。
通常,我们的代码是遍历要添加前缀的单元格,逐一添加前缀,如下面的代码所示:
Sub SlowAddPrefix() '声明变量 Dim strPrefix As String Dim rng As Range '要添加的前缀 strPrefix = "完美Excel" '关闭屏幕更新 Application.ScreenUpdating = False '遍历所选区域中的每个单元格 '对所选区域的单元格添加前缀 For Each rng In Selection.Cells '如果该单元格不为空则添加前缀 If rng.Value <> "" Then rng.Value = strPrefix & rng.Value End If Next rng '开启屏幕更新 Application.ScreenUpdating = TrueEnd Sub
然而,如果要操作的数据量很大,上面的代码则会比较慢。使用Replace方法可以更快的速度来完成添加前缀的任务,代码如下:
Sub QuickAddPrefix() '声明变量 Dim strPrefix As String '要添加的前缀 strPrefix = "完美Excel" '关闭屏幕更新 Application.ScreenUpdating = False '对所选区域的单元格添加前缀 Selection = Application.Replace(Selection,1, 0, strPrefix) '对于原来值为空的单元格移除前缀 Selection.Replace strPrefix, "",xlWhole, , , , False, False '开启屏幕更新 Application.ScreenUpdating = TrueEnd Sub
非常巧妙的代码!有兴趣的朋友可以在工作表中运行,看看效果。