簡體   English   中英

Excel VBA 的求值函數中的#VALUE 錯誤

[英]#VALUE Error in Evaluate Function of Excel VBA

我試圖找出下面的過程有什么問題。 在我的工作表中,有一個公式字符串需要對變量x 的不同值進行評估。

(0.5*(23-9.81)*3*(x^2))*(x/3)+(0.5*9.81*(x^2))*(x/3)-1*((0.5*18.5*0.33*(2.5^2))*(x+2.5/3)+(18.5*0.33*2.5*x)*(x/2)+(0.5*(23-9.81)*0.33*(x^2))*(x/3)+(0.5*9.81*(x^2))*(x/3)+(100*0.33*(2.5+x))*((2.5+x)/2))

我有一個看起來像這樣的 vba 代碼:

Public Function ev(r As Range, x As Double) As Variant
    ev = Application.Evaluate(Replace(r.Value, "x", x))
End Function

奇怪的是,此功能僅在單元格輸入類似於

=ev(Q25,10.01)

但不是

=ev(Q25,10.000000001)

甚至

=ev(Q25,10.00001)

為什么會這樣? 我需要該程序使用高達0.0000000001小增量進行計算。 謝謝你的見解。

傳遞給Application.EvaluateString有 255 個字符的限制。 Replace ing x Replace為相應的數值后,您遇到了硬限制。

您的選擇包括:

  • 將公式分解成多個部分並分幾個步驟對其進行Evaluate
  • 將公式重寫為評論中提到的更短的內容(盡管根據建議的參數長度,您可能仍會超過 255 限制)。
  • 使用類似的方法和寫入修改后的公式的單元格,然后回讀的計算值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM