[VBA ] 函數未定義
這是我寫的一段程式
但寫完之後執行卻顯示我的副程式未定義 我想請問是哪裡出問題了?
Option Explicit
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'XXX
'XXX VBA assignment 0853218
'XXX
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Public Type DSinput
X As Double 'X represents the warrant's strike price
S As Double 'S represents the current share price
T As Double 'T represents the warrant's maturity date
rf As Double 'rf represents the riskless rate
sigma As Double 'sigma represents the volatility of the stock
MW As Double 'M represents the number of warrant, while W represents the fair market value per warrant
N As Double 'N represents the number of share the firm currently issues
End Type
Public Sub main()
Dim jk As DSinput
jk.X = Cells(5, 11).Value
jk.S = Cells(5, 6).Value
jk.T = Cells(6, 6).Value
jk.rf = Cells(7, 6).Value
jk.sigma = Cells(8, 6).Value
jk.MW = Cells(13, 6).Value
jk.N = Cells(14, 6).Value
Call BSmodel_Call_Warrant(jk)
End Sub
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'XXX
'XXX Black-Scholes models for computing call price and analogous warrant value
'XXX
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Private Function BSmodel_Call_Warrant(ByRef jk As DSinput) As Double
Dim PV_X As Double: PV_X = jk.X * Exp(-jk.rf * jk.T)
Dim sigma_sqrT As Double: sigma_sqrT = jk.sigma * Sqr(jk.T)
Dim d1 As Double: d1 = (Log(jk.S / PV_X) / sigma_sqrT) + (sigma_sqrT / 2)
Dim d2 As Double: d2 = d1 - sigma_sqrT
Dim C_BS As Double: C_BS = jk.S * Application.NormSDist(d1) - PV_X * Application.NormSDist(d2)
Dim M As Double: M = jk.MW / (C_BS * jk.N - jk.MW)
Dim W As Double: W = jk.MW / M
cell(9, 6).Value = C_BS
cell(11, 6).Value = M
cell(12, 6).Value = W
End Function
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.90.193
→
06/16 16:30, , 1F
06/16 16:30, 1F
推
06/16 17:15, , 2F
06/16 17:15, 2F
→
06/16 23:19, , 3F
06/16 23:19, 3F