[VBA ] 懇請各位大手為我解惑

看板Visual_Basic作者 (蛹兒)時間13年前 (2011/06/14 23:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
大家好 我是第一次接觸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
文章代碼(AID): #1DzuJmc0 (Visual_Basic)