Re: [VBA ] 請問VBA可以引用函數到迴圈中嗎?

看板Visual_Basic作者 (兵)時間19年前 (2006/09/16 22:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《cilo (兵)》之銘言: : 各位板上的高手~~ : 我想請問一下~~ : 在VBA中可以引用函數到迴圈中嗎? : 例如:(這我從我的程式終截錄出來的一段) : Public Sub a() : For i = 1 To path sT = simulation_stock(s, r, sigma, t) : c_payoff = Application.Max(sT - k, 0) : p_payoff = Application.Max(k - sT, 0) : sum_c = sum_c + c_payoff : sum_p = sum_p + p_payoff : Next i : End Sub : Public Function simulation_stock(s As Double, r As Double, sigma As Double, : t As Double) As Double : Dim j As Integer : Dim a, a1, sT As Double : a1 = 0 : For j = 1 To 12 : a1 = a1 + Rnd : Next j : a = a1 - 6 : sT = s * Exp((r - sigma ^ 2 / 2) * t + sigma * Sqr(t) * a) : simulation_stock = sT : End Function : 為何VBA會給我錯誤的訊息(如下)~~ : 編譯錯誤: : ByRef 引數型態不符 : 是不是因為VBA不能夠將函數引用到迴圈中呢? : 麻煩各位高手幫個忙!! : 謝謝!! 我怕大家誤解我想問的問題~~ 所以我再加上一點解釋~~ 我想問的是如何引用Public Function內的函數~~ 而不是如何引用MAX~~ 換句話說~~ 以我的例子來說明就是~~請看變顏色的地方!! 如何引用一個有迴圈的函數到主程式中!! 另外我剛剛嘗試過將function內的東西建成模組~~ 再到主程式中搭配前面回文的方法(Application.WorksheetFunction.simulation_stock) 或是搭配Application.simulation_stock~~ 但是都沒辦法跑~~ 都會出錯~~ 我還在持續努力中~~ 希望大家有好方法的可以提供參考!! 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.220.180
文章代碼(AID): #1530KaL- (Visual_Basic)
文章代碼(AID): #1530KaL- (Visual_Basic)