[VBA ] 關於型態宣告和資料型態不符

看板Visual_Basic作者 (超電磁砲)時間4年前 (2020/11/07 18:05), 4年前編輯推噓0(001)
留言1則, 1人參與, 4年前最新討論串1/1
各位大大好,目前在做一些資產組合的vba模型,但在建模上遇到一點問題: Function portfolio_SD(ByRef Cov, ByRef Weight) As Double Dim i As Integer Dim j As Integer Dim N As Integer Dim temp_SD As Double N = UBound(Cov.Value) For i = 1 To N For j = 1 To N temp_SD = temp_SD + Weight(i, 1) * Weight(j, 1) * Cov(i, j) Next Next portfolio_SD = temp_SD^(0.5) End Function 跑出來系統一直跟我說第一行的宣告型態跟倒數第二行temp_SD^(0.5)的 資料型態不符。我不太懂他是指什麼意思,但若是型態的話我兩個都設為Double了阿? 之後我試著把0.5次方拿掉,結果就有顯示數值了。有點困惑XD若我要加這個次方 需要做什麼樣的更改呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 5.151.132.66 (英國) ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1604743542.A.C36.html

11/07 20:16, 4年前 , 1F
你用vartype 查一下就知道對不對了
11/07 20:16, 1F
感謝大大的回覆,剛剛用vartype跑了一下顯示5,表示他們都是double的形式, 後來我發現是空格的關係,也就是不能打temp_SD^(0.5) 而是要temp_SD ^ (0.5) 但還是蠻困惑差一個空格為什麼就不行= = ※ 編輯: myrailgun (5.151.132.68 英國), 11/08/2020 02:52:49
文章代碼(AID): #1Vfd5sms (Visual_Basic)
文章代碼(AID): #1Vfd5sms (Visual_Basic)