Excel IMABS函数返回false值

时间:2017-07-31 11:35:15

标签: excel vba

我有一张复杂数字的Excel表格。 所以在单元格(1,1)中有例如: 40318,5705419227 + 153347,941302982i

如果我想获得数字的绝对值,我可以手动插入= IMABS(A1),这样可以得到正确的结果: 158559,6993

但是如果我想用vba计算语句:

string1 = WorksheetFunction.ImAbs(Cells(1, 1).value)  

它给了我:431363308773779

任何人都可以解释一下吗?

2 个答案:

答案 0 :(得分:0)

如果40318,5705419227+153347,941302982i的值位于单元格“A1”中,则对它的正确引用将为:

String1 = WorksheetFunction.ImAbs(Cells(1, 1).Value2)

答案 1 :(得分:0)

显然,在VBA中,该函数需要US十进制符号。你的价值就是使用逗号。以下似乎有效:

WorksheetFunction.ImAbs (Replace(Cells(1, 1), ",", "."))

编辑: @pnuts在上面的评论中也提到了这一点。