因为表格里的公式非常多,我想把他计算出来的结果,在原单元格里直接变成数值,因为表格有几百万格,所以常规操作的复制黏贴值,很耗时,只是部分区域公式在原单元格变成数值哦,不是全表格变成纯数值!
有懂VBA的高手,求赐教!如果使用VBA希望是可以撤销执行结果的。
1/3
如图,H2单元格是一个公式,需要将它保存为数值。
2/3
复制H2单元格,然后右键点击H2单元格,粘贴选项选择为“值”,操作如图。
3/3
H2单元格就转化为数值了。
追问都说了不要复制黏贴值了,遇上巨量公式,这个不快。半小时起步!
您好,谢谢您的回复。我的诉求是因为表格里的公式非常多,我想把他计算出来的结果,在原单元格里直接变成数值,因为表格有几百万格,所以常规操作的复制黏贴值,很耗时,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