首页 > 解决方案 > 生成 #REF 的 Excel 公式!错误

问题描述

在 Microsoft Excel 中,我有一个生成 #REF 的单元格!错误(因为它指的是已删除的工作表)。我想编写 VBA 代码来检索该单元格中的公式。REF 错误是否消除了原始公式,因此它永远丢失了?我知道 IsError(ActiveCell.Value) 会告诉我单元格是否有错误,并且我知道 ActiveCell.Value 会给我错误号(#REF 为 2023),但这仍然让我没有原始公式。如果我有实际的公式,我可以更改工作表名称并将其放回麻烦的单元格中。

标签: excelvba

解决方案


有#REF!错误消除了原始公式,所以它永远丢失了?

是的!你无法逆转它。


但是,如果您正在寻找一种简单的方法来保留公式,在删除它们引用的工作簿之前,您可以'在每个公式前面添加一个符号。因此,公式将保存为文本,您将避免#REF!:

Public Sub AllFormulasToText()

    Dim myCell As Range

    For Each myCell In ActiveSheet.UsedRange
        If myCell.HasFormula Then myCell.Value = "'" & myCell.Formula
    Next myCell

End Sub

推荐阅读