excel或者vba,怎样将工作簿内所有橙色单元格公式转换为数值?

手贱用indirect做了个报表上期引用,工作簿里搞了六千多个链接,忘了这个东西必须把引用源打开,现在已经把所有带引用公式的单元格标了橙色,求解什么方法可以把单元格转换为数值呢

我写了一个通用工具,里面有三个转换公式为数值的功能:全部去除、保留本表引用、保留本工作簿引用的,我的工具界面如下:


三段代码都粘贴如下,供参考,我觉得第三项菜单的代码能满足帖子需求。

第一项,去除所有公式,代码一行:

ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value

第二、三项目代码如下图:

文本粘贴如下,可能会乱:

Sub Y把全表公式转换为数值() '保留本表引用公式
Dim cell As Range, Rng As Range
On Error Resume Next
Set Rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas)
On Error GoTo 0
If Rng Is Nothing Then
MsgBox "本表没有公式。", , appTitle
Exit Sub
End If
For Each cell In Rng.Cells
If InStr(cell.Formula, "!") Then cell.Value = cell.Value
Next cell
MsgBox "本表上引用其它表的所有公式已转换为数值。", , appTitle
End Sub

Sub Y把全表公式转换为数值2() '保留本工作薄内部引用公式
Dim cell As Range, Rng As Range
On Error Resume Next
Set Rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas)
On Error GoTo 0
If Rng Is Nothing Then
MsgBox "本表没有公式。", , appTitle
Exit Sub
End If
For Each cell In Rng.Cells
If InStr(cell.Formula, "[") Then cell.Value = cell.Value
Next cell
MsgBox "本表上引用其它工作薄文件的所有公式已转换为数值。", , appTitle
End Sub


追问

非常感谢您老师,就是能不能再讲下,如果要将本工作簿内所有工作簿引用其他工作簿文件的公式转数值,要修改哪一行代码呢,我这边是好多工作表,虽然跑的慢,但是亲测您的代码管用

追答

可以另外写一个宏:
sub 宏1()
Dim st as worksheet
Application.Calculation = xlCalculationManual
for each st in worksheets
st.activate
Y把全表公式转换为数值2
next st

end sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-11-21

直接菜单栏数据---编辑链接选择所有链接断开就可以了,

如果是 文件内  工作表 引用的公式  才需要用到 VBA

对于其他文件的 公式引用 链接 , 断开链接 是最快 最简单的方法

第2个回答  2021-11-19
需要把你的原始excel表格发我下,了解清楚情况才能对症下药