2011-07-14 134 views
3

我正試圖計算VBA for Excel中負數的立方根。以在Excel工作表負數的立方根正常工作:如何在Excel中使用VBA中的負數的立方根?

=(-2)^(1/3) 
-1.25992 

但是相同的概念編碼到VBA:

(-2)^(1/3) 

返回值到工作表時,給出了一個#VALUE!錯誤。我懷疑VBA正在將1/3解析爲其十進制表示0.3333...,因此會導致數學錯誤,因爲負數不能在實際域中升至非整數冪。有沒有解決方法?

回答

2

嘗試使用POWER()功能:

POWER(-2, 1/3) 
+3

工程很好,不敢相信我錯過了它。謝謝!對於其他讀者 - POWER沒有被定義爲VBA函數,所以你必須使用'Application.WorksheetFunction.Power()'構造來訪問它。 – 2011-07-14 19:14:03

+0

我其實不是一個VBA的人 - 謝謝澄清。 – CarlF

2

我覺得CarlF的/你的回答是最好的,但它是值得一提的是,您可以使用Application.Evaluate返回文字的Excel公式的結果:

Range("A1") = Application.Evaluate("=(-2)^(1/3)") 
0

對我而言,它不符合你所說的(-2)^(1/3)

但它與-2^(1/3)一起工作。

我不知道這是爲什麼。

+1

由於優先規則,表達式計算爲 - (2 ^(1/3)),它規避了指數負數的域錯誤。 – collapsar