为Excel去掉单元格的公式并保留值

写程序读取Excel中的数据时,如果Excel中单元格的数据是通过公式计算所得,在读取时有可能会只能读到这个公式,而无法得到具体的值。这时候,最好先把Excel中的公式去掉,并保留下单元格的公式计算所得的值。

以下VBA代码的作用即是去掉当前目录下所有Excel文件中的公式并保留值。使用方法为:在当前目录下新建一个Excel,然后打开,右键点击Excel中任意的一个Sheet名字,选择查看代码,将下面代码拷入,F5运行即可。

Sub 去掉目录下的公式()
    Dim ph$, fn$, sh As Worksheet
    ph = ThisWorkbook.Path & "\"
    fn = Dir(ph & "*.xls")
    Do While fn <> ""
        If fn <> ThisWorkbook.Name Then
            With Workbooks.Open(ph & fn)
                For Each sh In .Sheets
                    sh.UsedRange = sh.UsedRange.Value
                Next
                .Close True
            End With
        End If
        fn = Dir
    Loop
End Sub