如何快速将整个工作簿的公式转换为数值?

网友投稿 458 2022-10-07

如何快速将整个工作簿的公式转换为数值?

如何将多个工作表的函数计算结果转换为数值?今天就给大家集中聊一下这类问题。根据操作范围,这可以分为三种情况。

❶ 单个工作表的公式转数值❷ 多个工作表的公式转数值❸ 多个工作簿的公式转数值

1. 区域公式转数值

先来说第一种情况,区域函数计算结果转数值。这种最为常见,操作也比较简单。复制目标区域,右键选择性粘贴为数值即可。操作动画演示如下:

如何快速将整个工作簿的公式转换为数值?

2. 多工作表公式转数值

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

Sub FunctionTransValue_Sheets()Dim sht As WorksheetFor Each sht In Worksheets '遍历工作表sht.UsedRange.Value = sht.UsedRange.ValueNextEnd Sub

第3行至第5行代码遍历工作表,第4行代码将单元格的值修改为值,也就去除了公式内容。

3. 多工作簿公式转数值

指定文件夹下多个工作簿的公式转数值,可以复制运行以下代码:

Sub FunctionTransValue_Workbooks() '全部工作簿Dim strPath As String, sht As WorksheetDim strWbName As String, wb As WorkbookWith Application.FileDialog(msoFileDialogFolderPicker) '获取文件夹路径If .Show Then strPath = .SelectedItems(1) & "\" Else Exit SubEnd WithOn Error Resume NextWith Application.ScreenUpdating = False '取消屏幕刷新.DisplayAlerts = False '取消警告信息.EnableEvents = False '取消事件.Calculation = xlCalculationManual '取消公式重算.AskToUpdateLinks = False '取消外链询问End WithstrWbName = Dir(strPath & "*.xls*")Do While strWbName <> "" 'dir语句遍历excel文件If strWbName <> ThisWorkbook.Name ThenSet wb = Workbooks.Open(strPath & strWbName) '打开工作簿For Each sht In wb.Worksheets '遍历工作表公式转数值sht.UsedRange.Value = sht.UsedRange.ValueNextwb.Close True '保存关闭工作簿End IfstrWbName = Dir() '下一个excel文件LoopWith Application '恢复系统设置.ScreenUpdating = True.DisplayAlerts = True.EnableEvents = True.Calculation = xlCalculationAutomatic.AskToUpdateLinks = TrueEnd WithIf Err.Number ThenMsgBox Err.DescriptionElseMsgBox "转换完成。"End IfEnd Sub

代码解析如下▼

第4至第6行代码允许用户选择目标文件夹,并获取文件夹的路径。第8至第14行代码取消一系列系统设置。第15至第25行代码使用条件循环语句+DIR函数遍历工作簿。第19至第21行代码再遍历工作表,将公式转换为数值。第26至第32行代码恢复一系列系统设置。第33行至第37行代码反馈程序运行结果。

……

案例文件下载百度网盘..▼https://pan.baidu.com/s/1fK1OZIL2bOMor27tG6IuQg   提取码: 6sc9

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:打印设置技巧多,文档打印不翻车
下一篇:只要三分钟,学会简单的项目进度图
相关文章