【问题标题】:Excel Formula that generates a #REF! error生成 #REF 的 Excel 公式!错误
【发布时间】:2018-11-03 18:59:39
【问题描述】:

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

【问题讨论】:

  • #REF!部分应该只删除了工作表名称。如果您想使用不同的工作表名称,只需替换 #REF!无论该工作表名称是什么。

标签: excel vba


【解决方案1】:

有#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

【讨论】:

    【解决方案2】:
    Check = Range("A1").Formula 'Reference to the cell your formula is in
    

    【讨论】:

    • 我相信之前工作表名称会出现#REF!,对吗?但是,公式的其余部分应该是完整的。
    • 没错,但他在最后一句话中要求的是实际公式。
    • 是的! cells(1,1).Value 只给了我错误,但是 cells(1,1).Formula 给了我我正在寻找的东西,即丢失了工作表名称的原始公式。谢谢JvdV
    猜你喜欢
    • 2018-11-04
    • 2015-12-08
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 2021-03-08
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多