我偶然發現了一些我不明白的行爲。考慮以下功能:VBA對象類型
Function identity(n As Integer) As Integer
identity = n
End Function
顯然這不是最實用的功能,但它突出了我的問題。
這工作正如我所期望的,只是返回它的輸入是一個整數,否則會引發錯誤。但是,如果我將輸出更改爲一個對象,我仍然期望這能起作用,因爲據我瞭解,整數是對象。唉,相反,我得到了'價值錯誤'。
如果輸入和輸出類型都更改爲對象,則也會發生這種情況。
當輸入更改爲Object但輸出仍爲整數時,函數表現出真正好奇的行爲。如果它是通過'= identity(3)'從excel中調用它的錯誤,但是如果它通過'= identity(A1)'調用,其中A1包含3,它會返回正確的值。
任何人都可以解釋發生了什麼?我是新來的VB,但我已經在許多不同的語言之前編程,我從來沒有見過這樣的事......
這仍然失敗'=身份(3)'。有一些我可以使用的根類嗎?我原以爲是Object ... – DomJack
我在VBA中添加了一些關於對象與非對象的更多細節 – barrowc