[英]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.