我正在尝试在VBA for Excel中计算负数的立方根。在Excel工作表中取负数的立方根工作正常:
=(-2)^(1/3)
-1.25992
然而,相同的概念编码到VBA中:
(-2)^(1/3)
将值返回到工作表时,出现#VALUE!
错误。我怀疑VBA正在将1/3
解析为其十进制表示0.3333...
,因此导致数学错误,因为在实域中负数不能被提升为非整数幂。有解决方法吗?
答案 0 :(得分:2)
尝试使用POWER()
功能:
POWER(-2, 1/3)
答案 1 :(得分:2)
我认为CarlF /你的答案是最好的,但值得一提的是你可以使用Application.Evaluate来返回文字Excel公式的结果:
Range("A1") = Application.Evaluate("=(-2)^(1/3)")
答案 2 :(得分:0)
对我而言,正如您所述,它不适用于(-2)^(1/3)
。
但它适用于-2^(1/3)
。
我不知道为什么会这样。
答案 3 :(得分:0)
如果x是正实数,那么-x的立方根只是x的立方根的否定,即 - (x ^(1/3)。