能否用VBA将单元格内容转换为公式?新手宏操作求助
解决方法
1. 先复制原内容到新工作表
右键点击底部的工作表标签,插入一个新工作表;回到原表按Ctrl+A全选内容,复制后粘贴到新工作表里。
2. 用VBA批量转伪公式为真公式再存为值
录制宏的替换操作没法自动把文本转成可计算的公式,得用下面的代码来处理:
- 按
Alt+F11打开VBA编辑器 - 右键左侧的
VBAProject,选「插入」→「模块」 - 粘贴以下代码:
Sub ConvertToFormulaAndValue() Dim ws As Worksheet ' 把这里的"新工作表"改成你实际的新表名称 Set ws = ThisWorkbook.Worksheets("新工作表") Dim cell As Range ' 遍历新表里所有有内容的单元格 For Each cell In ws.UsedRange ' 检查单元格内容是不是以§=开头 If Left(cell.Value, 2) = "§=" Then ' 去掉开头的§,把内容设为公式 cell.Formula = Mid(cell.Value, 2) End If Next cell ' 把所有公式转换成纯值,彻底节省内存 ws.UsedRange.Value = ws.UsedRange.Value End Sub
- 按
F5运行代码,或者回到Excel界面按Alt+F8,选择这个宏执行就行。
为什么录制宏替换没用?
直接替换掉§后,单元格里的=EQUIV(...)还是文本格式,Excel不会自动把它当成公式计算。必须手动按F2+Enter触发转换,或者用VBA的cell.Formula属性来设置,才能让Excel识别成可计算的公式。
内容的提问来源于stack exchange,提问作者Jeuxlag JL
相关产品推荐
相关产品推荐

