HI,大家好,我是星光。 后台有朋友询问,如何将多个工作表的函数结果转换为数值?今天就给大家集中聊一下这个问题▼ 如何将函数公式计算结果转换为数值? 根据操作范围,这可以分为三种情况。 ❶单个工作表区域转数值 ❷多工作表公式转数值 ❸多工作簿公式转数值 1, 区域公式转数值 先来说第一种情况,区域函数结果转数值。这种最为常见,操作也比较简单。复制目标区域,右键选择性粘贴为数值即可。 2, 多工作表公式转数值 如果是将当前工作簿所有工作表的公式转换为数值,需要使用到VBA代码。复制运行以下代码即可▼ Sub FunctionTransValue_Sheets() Dim sht As Worksheet For Each sht In Worksheets '遍历工作表 sht.UsedRange.Value = sht.UsedRange.Value Next End Sub
第3行至第5行代码遍历工作表,第4行代码将单元格的值修改为值,也就去除了公式内容。 3, 多工作簿公式转数值 复制运行以下代码即可▼ 代码看不全可以左右拖动.. Sub FunctionTransValue_Workbooks() '全部工作簿 Dim strPath As String, sht As Worksheet Dim strWbName As String, wb As Workbook With Application.FileDialog(msoFileDialogFolderPicker) '获取文件夹路径 If .Show Then strPath = .SelectedItems(1) & '\' Else Exit Sub End With On Error Resume Next With Application .ScreenUpdating = False '取消屏幕刷新 .DisplayAlerts = False '取消警告信息 .EnableEvents = False '取消事件 .Calculation = xlCalculationManual '取消公式重算 .AskToUpdateLinks = False '取消外链询问 End With 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文件 Loop With Application '恢复系统设置 .ScreenUpdating = True .DisplayAlerts = True .EnableEvents = True .Calculation = xlCalculationAutomatic .AskToUpdateLinks = True End With If Err.Number Then MsgBox Err.Description Else MsgBox '转换完成。' End If End Sub
代码解析如下▼ 第4至第6行代码允许用户选择目标文件夹,并获取文件夹的路径。 第8至第14行代码取消一系列系统设置。 第15至第25行代码使用条件循环语句+DIR函数遍历工作簿。第19至第21行代码再遍历工作表,将公式转换为数值。
第26至第32行代码恢复一系列系统设置。 第33行至第37行代码反馈程序运行结果。 ……
没了,代码三五行,工作不用忙断肠,挥挥手明天再见。
|