用VBA将所有工作表去公式并保留原显示格式
问题描述
出于各种各样的原因,我们需要将所有使用公式的单元格最后只留数值,而且要尽量保持显示格式不变。而使用公式的单元格零散分布,数量众多。因此,使用VBA会简化操作,提升效率。
1.在“开发工具”选项卡中选择”Visual Basic”
2.插入模块
写入如下VBA代码:
Sub fmlatoval()
Dim a As Worksheet
For Each a In Sheets
a.UsedRange.Copy 'UsedRange表示所有被编辑过的单元格
a.UsedRange.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Next
End Sub
其实质相当于复制并保留原格式和值黏贴,和你自己弄复制黏贴差不多,只不过机器处理更快一些。
这样就可以保证所有使用公式的单元格最后存储的只有数值,而且显示格式与原格式相同。
运行结果
运行前:
运行后:
因为原来这个单元格用的是VLOOKUP函数,而被搜所的值在另一张工作表里是用文本格式显示的,最终仍需要以文本格式展现。上述方法完全保留了原来的显示格式。如果仅仅只是粘贴值那么单元格就很有可能把值处理成数字格式,最后显示的结果就会用科学计数法显示。