[英]Excel VBA #Value! Error
我有以下函数,当我运行它时会显示#value! 错误。
我将不胜感激任何帮助。
Function Bootstrap(S As Object, Z As Object, L As Double)
Dim j As Integer
Dim a() As Double
Dim b() As Double
Dim n As Integer
Dim Q() As Double
Dim sum As Double
Dim P As Double
ReDim a(1 To n)
ReDim b(1 To n)
ReDim Q(1 To n)
dt = 1
sum = 0
Q(0) = 0
For j = 1 To n - 1
S.Cells(j, 1).Value = a(j)
Z.Cells(j, 2).Value = b(j)
P = Z(j) * (L * Q(j-1) - (L + dt * a(n) * Q(j))
sum = sum + P
Next j
Bootstrap = sum
End Function
自举函数计算以下值实际上,我正在尝试计算此公式Q(t,Tn)=(∑(j = 1)至(n-1)Z(t,Tj) [LQ(t,Tj-1) -(L + dt Sn) Q(t,Tj)] / [Z(t,Tn) (L + dt * Sn)] +(Q(t,Tn-1) L)/(L + dt Sn)
给定的输入为[S1,S2,.... Sn],[Z(t,T1),Z(t,T2)..... Z(t,Tn)]和L = 0.4
养成格式化和增加代码的习惯,尤其是在发布代码之前!
P = Z(j) * (L*Q(j-1)-(L+ dt * a(n) * Q(j))
缺少括号 n
为空( a
, b
和Q
也是空的),因此需要定义它们! Z(j)
也会给您一个错误,因为它是一个范围,因此您需要Z.Cells(i,j)
尝试这个 :
Function Bootstrap(S As Range, Z As Range, L As Double) As Double
Dim j As Integer
Dim a() As Double
Dim b() As Double
Dim n As Integer
Dim Q() As Double
Dim sum As Double
Dim P As Double
n = Application.WorksheetFunction.Max(S.Columns.count, Z.Columns.count)
a = S.Value
b = Z.Value
dt = 1
sum = 0
ReDim Q(1 To n)
Q(0) = 0
'Q(1) = "??"
For j = 1 To n - 1
P = b(1, j) * (L * Q(j - 1)) - (L + dt * a(1, j) * Q(j - 1))
sum = sum + P
Q(j) = sum
Next j
Bootstrap = sum
End Function
尝试以下代码:输入为= Bootstrap(A1:B1,A2:B2,0.4)
我已更正以下内容
-将范围分配给变体
-将dt定义为double
-将Q()设为0到n
-在公式中使用A()和b()
-输入范围是行而不是列
Function Bootstrap(S As Range, Z As Range, L As Double) As Double
Dim j As Integer
Dim a As Variant
Dim b As Variant
Dim n As Integer
Dim Q() As Double
Dim sum As Double
Dim P As Double
Dim dt As Double
n = Application.WorksheetFunction.Max(S.Columns.Count, Z.Columns.Count)
a = S.Value
b = Z.Value
dt = 1
sum = 0
ReDim Q(0 To n)
Q(0) = 0
For j = 1 To n - 1
P = b(1, j) * (L * Q(j - 1)) - (L + dt * a(1, j) * Q(j - 1))
sum = sum + P
Q(j) = sum
Next j
Bootstrap = sum
End Function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.