Excel VBA小程序-如何快速将整个工作簿的公式转换为数值

根据操作范围,这可以分为三种情况。

多工作表公式转数值

多工作簿公式转数值

1、多工作表公式转数值

如果是将当前工作簿所有工作表的公式转换为数值,需要使用到VBA代码。

Sub FunctionTransValue_Sheets()
    Dim sht As Worksheet
    For Each sht In Worksheets '遍历工作表
        sht.UsedRange.Value = sht.UsedRange.Value
    Next
    MsgBox "ok"
End Sub

2、多工作簿公式转数值

复制运行以下代码即可▼

Sub FunctionTransValue_Workbooks() '全部工作簿
    Dim strPath As String, sht As Worksheet
    Dim strWbName As String, wb As Workbook
    '1、选择目标文件夹,并获取文件夹的路径。
    With Application.FileDialog(msoFileDialogFolderPicker) '获取文件夹路径
        If .Show Then strPath = .SelectedItems(1) & "\" Else Exit Sub
    End With
    On Error Resume Next
    '2、取消一系列系统设置
    With Application
        .ScreenUpdating = False '取消屏幕刷新
        .DisplayAlerts = False '取消警告信息
        .EnableEvents = False '取消事件
        .Calculation = xlCalculationManual '取消公式重算
        .AskToUpdateLinks = False '取消外链询问
    End With
    '3、遍历工作簿,工作表,将公式转换为数值。
    strWbName = Dir(strPath & "*.xls*")
    Do While strWbName <> "" 'dir语句遍历excel文件
        If strWbName <> ThisWorkbook.Name Then
            Set wb = Workbooks.Open(strPath & strWbName) '打开工作簿
            For Each sht In wb.Worksheets '遍历工作表公式转数值
                sht.UsedRange.Value = sht.UsedRange.Value
            Next
            wb.Close True '保存关闭工作簿
        End If
        strWbName = Dir() '下一个excel文件
    Loop4、恢复一系列系统设置
    With Application 
        .ScreenUpdating = True
        .DisplayAlerts = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
        .AskToUpdateLinks = True
    End With
    '5、反馈程序运行结果
    If Err.Number Then
        MsgBox Err.Description
    Else
        MsgBox "转换完成。"
    End If
End Sub
    原文作者:牧文山
    原文地址: https://blog.csdn.net/weixin_42750611/article/details/113795538
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞