Excel的公式可谓是其中的精华,但是发布文件时,有时需要将工作表单元格中的公式转换为静态结果,在Excel中进行操作使用选择性粘贴为数值将可以实现。
如果有很多工作表需要进行这种转换,逐个去处理和操作,也是很耗时的操作,使用VBA可以快速的进行转换。
实例工作表中的数据和公式如下图所示。
方法1:选择性粘贴为数值
Sub Formula2Val_1()
With Range("a1").CurrentRegion
.Copy
.PasteSpecial xlPasteValues
End With
End Sub
【代码解析】
第2行代码使用CurrentRegion读取当前数据区域。
第3行代码使用Copy
方法拷贝数据区域。
第4行代码使用PasteSpecial
方法粘贴为数据,其中xlPasteValues
为VBA常量。
方法2:使用Value属性转换
Sub Formula2Val_2()
With Range("a1").CurrentRegion
.Value = .Value
End With
End Sub
【代码解析】
第2行代码使用CurrentRegion读取当前数据区域。
第3行代码使用.Value = .Value
进行转换。粗略看相同的属性进行赋值,结果是否维持不变呢,从单元格显示的结果看,没有任何变化,但是查看公式可以发现,所有公式都转换为相应的值。
方法3:使用Formula属性转换
Sub Formula2Val_3()
With Range("a1").CurrentRegion
.Formula = .Value
End With
End Sub
【代码解析】
第2行代码使用CurrentRegion读取当前数据区域。
第3行代码使用.Formula = .Value
进行转换。
上述几种方法都很方便,大家可以根据自己的习惯选择使用。