Ethan's Blog

记录和思考

为 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

相关文章: