[VBA ] 懇請各位大手為我解惑
大家好
我是第一次接觸VBA 因為修課緣故必須學寫excel 2007版的程式碼
但是因為我實在太外行了!! 考試近在眼前 現在求助無門啊啊QQ
(自己做練習時 遇到許多問題 寄了mail向老師請教 那封信卻就這樣石沉大海...)
懇請各位不吝惜花一點小時間為我解惑~~相信大手們能輕鬆應付
由於時間有點急迫所以我簡短地說了,禮數不夠周到還請見諒!!
-----------------------------------
我們課堂上教了用EXCEL做變異數分析
自訂兩種函數以及使用function程序撰寫共變異數矩陣
分別要計算 加權指數報酬率的變異數
和 某企業股價報酬率的變異數 (兩者均有十筆樣本資料)
並計算共變異數
以下是兩種撰寫共變異數矩陣自訂函數的內容(出自 張大成[財務軟體的應用])
第1種
Public Function varf(z)
'user-defined function for computing variance
nr = Apllication.Count(z)
Sum = 0
For i = 1 To nr
Sum = Sum + z(i)
Next
mean = Sum / nr
Sz = 0
For i = 1 To nr
Sz = Sz + (z(i) - mean) ^ 2
Next
varf = Sz / (nr - 1)
End Function
----------------------------------
第2種
Function cov_mf2(sample)
'user-defined function for computing covariance matrix2
Dim i, nr, nc As Integer
Dim XX() As Single
Dim YY() As Single
Dim covn() As Single
nr = sample.Rows.Count
nc = sample.Columns.Count
ReDim XX(nr) As Single
ReDim YY(nr) As Single
ReDim covn(nc, nc) As Single
For i = 1 To nr
XX(i) = sample(i, 1)
YY(i) = sample(i, 2)
Next
covn(1, 1) = varf(XX)
covn(2, 2) = varf(YY)
covn(2, 1) = Application.Covar(XX, YY)
cov_mf2 = covn
End Function
-----------------------------------------
function的部分是:
Function cov_mf(sample)
Dim i, nr, nc As Integer
Dim XX() As Single
Dim YY() As Single
Dim covn() As Single
nr = sample.Rows.Count
nc = sample.Columns.Count
ReDim XX(nr) As Single
ReDim YY(nr) As Single
ReDim covn(nc, nc) As Single
For i = 1 To nr
XX(i) = sample(i, 1)
YY(i) = sample(i, 2)
Next
covn(1, 1) = Application.Var(XX)
covn(2, 2) = Application.Var(YY)
covn(2, 1) = Application.Covar(XX, YY)
cov_mf = covn
End Function
----------------------------
我的問題:
1.如何執行上面那兩種已經撰寫好的自訂函數?
我在準備輸出矩陣的儲存格裡輸入"=cov_mf"之後,
下一個步驟該怎麼做?
2.開頭的public function 跟function有什麼不同?
3.撰寫function程序時 名稱後面那個括弧裡面的字代表什麼?
4.上述兩種自訂函數 彼此之間有什麼關連嗎?
5.第一種自訂函數 我幾乎看不懂
包括迴圈的用法.以及為何會出現一個新變數Sz
可以用白話.簡單的說明每一行代表的涵義嗎?
謝謝各位 感激不盡(跪)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.175.130.94