如何从EXCEL公式中得到真实的公式

| 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进行计算,所以我想要有真正的公式。

在定义了之后,我认为一个VBA解决scheme是可行的。 既然你注意到这是可以接受的,我已经为你提供了一个。

下面的函数将返回stringa=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 

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