如何从EXCEL公式中获得真正的公式

时间:2016-02-03 15:19:23

标签: excel vba excel-formula

      | A   |  B
------|-----|--------
    1 |  x  |   1
    2 |  y  |   2
    3 |  z  |   3
    4 |  a  |   =B1*B2+B3

想象上面的东西是excel表的一部分,而B4的公式是=B1*B2+B3

是否可以从excel公式中提取实际公式?即,在上面的例子中,真实公式是a=x*y+z

我之所以要进行"转型"是我有很多excel表填充数据和公式,现在我想退出Excel并使用javascript进行计算,所以我想要真正的公式。

2 个答案:

答案 0 :(得分:4)

在确定了你所追求的是什么之后,我认为VBA解决方案是可行的方法。既然你注意到它是可以接受的,我已经为你提供了一个。

以下函数将返回字符串a=x*y+z,只要您的所有公式都以您示例中给出的方式完全设置,它就会起作用。

Function ListRealFormula(rng As Range, ws As Worksheet) As String

Dim sFormula As String

sFormula = rng.Offset(, -1) & rng.Formula

With rng

    Dim d As Range
    For Each d In .DirectPrecedents

        Dim sValue As String, sAdd As String
        sAdd = d.Address(0, 0)
        sValue = ws.Range(sAdd).Offset(, -1).Value2
        sFormula = Replace(sFormula, sAdd, sValue)

    Next

End With

ListRealFormula = sFormula

End Function

您可以像这样调用函数:

Sub GrabFormula()

Dim s As String

s = ListRealFormula(Sheet1.Range("B4"), Sheet1)
Debug.Print s

End Sub

答案 1 :(得分:2)

@Wyatt,你的第一部分是正确的,但这还不够:一旦你点击了“显示公式”,你还需要“转到特殊,公式”(Ctrl + G,特殊,公式)。当您单击“显示公式”时,您现在可以复制/粘贴到某个文本编辑器中,并且您拥有Excel表格中使用的所有公式。