Excel如何快速把公式变成数值?

因为表格里的公式非常多,我想把他计算出来的结果,在原单元格里直接变成数值,因为表格有几百万格,所以常规操作的复制黏贴值,很耗时,只是部分区域公式在原单元格变成数值哦,不是全表格变成纯数值!
有懂VBA的高手,求赐教!如果使用VBA希望是可以撤销执行结果的。

1/3

如图,H2单元格是一个公式,需要将它保存为数值。

2/3

复制H2单元格,然后右键点击H2单元格,粘贴选项选择为“值”,操作如图。

3/3

H2单元格就转化为数值了。

追问

都说了不要复制黏贴值了,遇上巨量公式,这个不快。半小时起步!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-15

按Ctrl+A全选(或者点行列交叉处全选),再复制粘贴值,应该是最快的方法。

追问

都说了不要复制黏贴值了,遇上巨量公式,这个不快。半小时起步!
你这个更慢,还不如选择公式,复制黏贴值。

第2个回答  2021-04-21

1、选定区域后点右键复制

2、再点右键,单击选择性粘贴,单击数值,如图:

追问

别为了答题而答题。会让平台掉价的。

第3个回答  2021-04-15

微软可以设置快捷键,如图,我的设置成Alt+3,WPS貌似没有这个功能

第4个回答  2021-04-16
Sub 变为数值()
arr = Range("a1:z1000") '公式所在的区域
[a1].Resize(1000, 26) = arr '数组,1000行,26列
End Sub追问

您好,谢谢您的回复。我的诉求是因为表格里的公式非常多,我想把他计算出来的结果,在原单元格里直接变成数值,因为表格有几百万格,所以常规操作的复制黏贴值,很耗时,VBA应该是比较靠谱的,您编辑的程序试用了,但是复制和填充没有在原来的地方,劳烦您再帮忙编程一下,谢谢!

追答

Sub 变为数值()
arr = Range("a1:z1000") '假设公式所在的区域在A1:Z1000
[a1].Resize(1000, 26) = arr '数组,1000行,26列,数组的区域就是1000行,a:z就是26列,在原区域变为数值,
End Sub

追问

区域必须跟行列数对应才可以是吗?同一个工作簿里不同的表格,相同格式,区域也一样,只是数值不一样而已,怎么才能一键执行多表格呢?

追答

Range("a1:z1000") '假设公式所在的区域在A1:Z1000

就表示1000行*26列
要循环,所有分表
Sub 变为数值()
Dim n
n = Sheets.Count
For i = 1 To n
arr = Sheets(i).Range("a1:z1000") '假设公式所在的区域在A1:Z1000
Sheets(i).[a1].Resize(1000, 26) = arr '数组,1000行,26列,数组的区域就是1000行,a:z就是26列,在原区域变为数值,
Next
End Sub

相似回答