2009-12-04 158 views
2

我有一些Excel代碼的問題,我有麻煩得到我的頭。問題excel的application.evaluate命令在vba

好了,所以我使用在Excel VBA中的application.evaluate命令,Office 2007中

如果我有Evaluate("SIN(45)")它返回一個很好的預測數。但是,如果我做Evaluate("eq")代碼崩潰。

eq是我從Excel中讀取的公式。方程是:3*x^2+5*x+1。它作爲一個字符串傳入。爲了確保發生這種情況,我將它放在另一個我定義爲字符串的變量中。我用excel的替換函數替換等式中的x。 equation = Replace(equation, "x", temp)

但是,當我到評估代碼分解,我不知道爲什麼。 Total = Total + Evaluate("equation")。任何幫助非常感謝

回答

3

我認爲問題在於你引用一個字符串「方程」,而不是公式字符串。

我會做

Evaluate(equation)Evaluate(Replace(equation, "x", temp))代替,註釋而不報價周圍方程,這將產生一個有效的答案。

希望這有助於。

+0

哇!奏效,非常感謝你! – Samuel 2009-12-04 18:03:33

+0

Charles Williams對使用Application.Evaluate的許多怪癖有一些不錯的描述:http://www.decisionmodels.com/calcsecretsh.htm – jtolle 2009-12-04 18:56:34