在使用 Excel 处理数据时,有时我们完成了数据的计算并通过公式得到了所需结果,但在将表格分享给他人或进行其他后续操作时,可能只希望保留最终的数值,而不需要公式继续存在。以下为您介绍几种在 Excel 中清除公式并保留数值的方法。
一、通过选择性粘贴清除公式保留数值
1、复制目标区域:
首先,在 Excel 表格中选中包含公式且需要清除公式保留数值的单元格区域。可以通过鼠标点击并拖动的方式来准确选中相应区域。选好后,按下键盘上的复制快捷键(通常为 Ctrl C),将所选区域复制到剪贴板。
2、进行选择性粘贴操作:
接着,在目标位置(可以是原位置,也可以是其他空白区域,根据具体需求而定)点击鼠标右键,在弹出的菜单中选择 “选择性粘贴” 选项。此时会弹出 “选择性粘贴” 对话框。
3、选择粘贴数值:
在 “选择性粘贴” 对话框中,找到并选择 “数值” 选项。这个选项的作用就是只粘贴之前复制区域中公式计算得出的数值,而不会粘贴公式本身。点击 “确定” 后,所选区域的公式就被清除了,只保留了数值。
不过,这种方法存在一个小缺点,就是如果原单元格有特定的数据格式设置(如字体、字号、颜色、单元格填充等),经过选择性粘贴后,这些格式可能会丢失,需要重新进行设置,比较麻烦,尤其是当处理的数据量较大时。
二、利用 VBA 宏清除公式保留数值
1、宏编写思路:
如果希望在清除公式的同时能完整保留原有的数据格式,那么可以借助 Excel 内置的 VBA 宏来实现。其基本思路是遍历指定工作表中所有已使用的单元格,对于每个单元格判断是否包含公式,如果包含公式则用该单元格的计算值取代公式,从而实现清除公式并保留数值且格式不变的目的。
2、编写宏代码:
进入 VBA 编辑窗口:按 Alt F11 组合键进入到 Excel 的 VBA 编辑窗口。
创建模块并输入代码:在 VBA 编辑窗口中,单击【插入 模块】菜单项,进入到 VBA 通用模块编辑窗口,然后输入以下 VBA 代码:
Sub RemoveFormulas() '去除公式,仅保留值
Dim ws As Worksheet
Dim rng As Range ' 设置工作表对象
Set ws = ActiveSheet ' 禁用屏幕更新和警告信息
Application.ScreenUpdating = False
Application.DisplayAlerts = False ' 遍历工作表中的每一个单元格
For Each rng In ws.UsedRange ' 如果单元格包含公式,则将公式结果赋值给单元格
If rng.HasFormula Then
rng.Value = rng.Text ' rng.Value
End If
Next ' 重新启用屏幕更新和警告信息
Application.ScreenUpdating = True
Application.DisplayAlerts = True ' 清理对象变量
Set rng = Nothing
Set ws = Nothing ' 宏执行完毕的消息
MsgBox "所有公式已转换为它们的值。", vbInformation vbOKOnly, "提示"
End Sub
3、执行宏代码:
返回工作表窗口,为了保留原工作表,可先原样复制一份工作表(这一步可选,根据个人需求而定)。
单击【开发工具】选项卡【代码】组中的【宏】命令(如果看不到【开发工具】选项卡,可以通过 Excel 的设置选项将其显示出来),在弹出的【宏】对话框中选择 “RemoveFormulas” 宏,然后单击执行按钮,系统将调用宏代码并自动执行。
执行完上述操作后,工作表中的所有公式都会被改成计算结果,同时原有的数据格式能够得到保留。
需要注意的是,为了保留已创建的宏代码,应将工作簿另存为.xlsm 格式文件(Excel 启用宏的工作簿)。
通过以上两种方法,您可以根据自己的需求在 Excel 中灵活地清除公式并保留数值,以便更好地进行后续的数据处理和分享等操作。
评论 (0)