我正試圖計算VBA for Excel中負數的立方根。以在Excel工作表負數的立方根正常工作:如何在Excel中使用VBA中的負數的立方根?
=(-2)^(1/3)
-1.25992
但是相同的概念編碼到VBA:
(-2)^(1/3)
返回值到工作表時,給出了一個#VALUE!
錯誤。我懷疑VBA正在將1/3
解析爲其十進制表示0.3333...
,因此會導致數學錯誤,因爲負數不能在實際域中升至非整數冪。有沒有解決方法?
我正試圖計算VBA for Excel中負數的立方根。以在Excel工作表負數的立方根正常工作:如何在Excel中使用VBA中的負數的立方根?
=(-2)^(1/3)
-1.25992
但是相同的概念編碼到VBA:
(-2)^(1/3)
返回值到工作表時,給出了一個#VALUE!
錯誤。我懷疑VBA正在將1/3
解析爲其十進制表示0.3333...
,因此會導致數學錯誤,因爲負數不能在實際域中升至非整數冪。有沒有解決方法?
嘗試使用POWER()
功能:
POWER(-2, 1/3)
我覺得CarlF的/你的回答是最好的,但它是值得一提的是,您可以使用Application.Evaluate返回文字的Excel公式的結果:
Range("A1") = Application.Evaluate("=(-2)^(1/3)")
對我而言,它不符合你所說的(-2)^(1/3)
。
但它與-2^(1/3)
一起工作。
我不知道這是爲什麼。
由於優先規則,表達式計算爲 - (2 ^(1/3)),它規避了指數負數的域錯誤。 – collapsar
工程很好,不敢相信我錯過了它。謝謝!對於其他讀者 - POWER沒有被定義爲VBA函數,所以你必須使用'Application.WorksheetFunction.Power()'構造來訪問它。 – 2011-07-14 19:14:03
我其實不是一個VBA的人 - 謝謝澄清。 – CarlF