如何在VBA函数中使用数组?

凯蒂

我需要执行公共函数,该函数从某些数组中获取值并为每个x计算f(x)函数,其中f(x)= x ^ 3 + 1 / 5x +2。这是我在做什么,但没有用

用户名

除非您Option Base 1位于代码窗格的顶部,否则吉普(Jeeped)的注释是代码故障的一个很可能的原因因此,要么您拥有/放置该语句,要么将ReDim语句更改ReDim B(1 To nrows, 1 To ncols) As Double

此外,您必须反转Next INext j

最后,我建议您:

  • 如果您要处理的行数超过32767 ,请使用Long变量类型而不是integerfornrowsi变量datarangencolsj为简单起见假定相同的类型

  • 使用“简单”(不是数组)双精度变量,A因为您只需要作为临时“ x”值来计算相应的“ y”值,并将后者仅存储在B()数组中,最终由您的函数返回。

因此可能是:

Function functionvalue(datarange)

Dim nrows As Long, ncols As Long
Dim i As Long, j As Long

Dim A As Double, B() As Double

nrows = datarange.Rows.Count
ncols = datarange.Columns.Count

ReDim B(1 To nrows, 1 To ncols) As Double

For i = 1 To nrows
    For j = 1 To ncols
        A = datarange.Cells(i, j)
        B(i, j) = A ^ 3 + A * 1 / 5 + 2
    Next j
Next i

functionvalue = B

End Function

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章