我需要执行公共函数,该函数从某些数组中获取值并为每个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 I
并Next j
最后,我建议您:
如果您要处理的行数超过32767 ,请使用Long
变量类型而不是integer
fornrows
和i
变量datarange
。ncols
并j
为简单起见假定相同的类型
使用“简单”(不是数组)双精度变量,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] 删除。
我来说两句