如何使用单元格值而不是单元格引用来显示单元格公式?

如何使用单元格值而不是单元格引用来显示单元格公式?

在此处输入图片描述

如果我有一个单元格公式,例如 A4 中的公式......“=A1+A2”

我知道我可以使用 FORMULATEXT() 函数在单元格 B4 中显示公式,但我不希望公式显示单元格引用。

相反,我想在单元格 C4 中创建一种方法来显示单元格 A4 中的公式,但显示值而不是单元格引用,因此“=5+10”作为最终结果。如果我将 A1 更改为 6,则 C4 中显示的结果将是“=6+10”。

原因是我希望我的 Excel 公式可以在打印页面上检查。单元格引用没有用。我想看到值。我需要这个才能应用于数百个公式。所以我希望有一些 VBA 可以用于用户定义函数,我可以将其添加到类似于 FORMULATEXT() 的单元格中,除了单元格引用之外,我需要的是值。

提前致谢

答案1

Excel 的工作方式并非如此;如果单元格中有一个公式,那么该公式就会显示在公式栏中。

编辑

但是,您可以使用 VBA(来自Tools > Macros > Visual Basic Editor)编写代码,使用 A + B 的值更新 C 单元格的内容,如下所示:

Private Sub HideFormula()
    Dim lastrow As Long, r1 As Long

    ' Get the last row in the worksheet
    lastrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

    For r1 = 1 To lastrow

        ' If A & B aren't blank, make the formula of cell C equal to A + B.
        If Sheet1.Range("$A$" & r1).Value <> "" And _
            Sheet1.Range("$B$" & r1).Value <> "" Then

            ' In the example, C2 = A1 + B1, so offset C by one
            Sheet1.Range("$C$" & (r1 + 1)).Value = _
                "=" & Sheet1.Range("$A$" & r1).Value & "+" & _
                Sheet1.Range("$B$" & r1).Value

        End If

    Next

End Sub

编辑2

如果您想用公式中的值替换 C 单元格的内容,您可以使用该.Formula值找到其公式,然后从那里开始:

Private Sub ReplaceFormulaWithValues()
    Dim lastrow As Long, r1 As Long
    Dim temp As String, arTemp

    ' Get the last row in the worksheet
    lastrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

    For r1 = 1 To lastrow

        ' If A & B aren't blank, make the formula of cell C equal to A + B.
        If Sheet1.Range("$C$" & r1).Value <> "" Then

            ' Get the formula for the current C cell
            temp = Replace(Sheet1.Range("$C$" & r1).Formula, "=", "")

            ' Create an array by splitting the formula on the + sign
            arTemp = Split(temp, "+")

            Sheet1.Range("$C$" & r1).Value = _
                "=" & Sheet1.Range(arTemp(0)).Value & "+" & _
                Sheet1.Range(arTemp(1)).Value


        End If

    Next

End Sub

相关内容