【发布时间】:2020-07-05 21:35:02
【问题描述】:
抱歉,由于我是 VBA 新手,所以这个问题很愚蠢。
问题一开始就出现了,因为 excel IRR 无法计算模拟中的变化列(仅计算初始值而不是以下循环中的值)。所以我选择了VBA IRR函数,但是它的双数组要求似乎是另一个主要问题。
当我尝试将范围读入变量数组,并以某种方式将每个数组元素转换为双精度类型,然后在 VBA IRR 函数中使用它们时,代码仍然显示“类型不匹配”。我也尝试过数组,但同样的错误结果。
有没有办法让工作表 IRR 与更改的单元格一起工作,或者将变体数组转换为使 VBA IRR 工作的双精度数?
代码如下:
Dim va As Variant
Dim va_d As Double
va = Worksheets(3).Range("AY16:AY136").Value
va_d = CDbl(va)
Worksheets(3).Range("H7").Value = IRR(va_d)
【问题讨论】:
-
在您发布的代码中,您试图获取一个范围并存储在数组
va(变体)中并将该数组中的所有项目更改为双倍?va_d是否试图获得一个双精度数组? -
是的,正是我想要做的。
-
如果我没记错的话,您会收到错误“类型不匹配”,因为您想将整个数组变成双字段。
-
va中的范围是否已经有 double 值?