在測試以下內容時,我在最後一行出現編譯錯誤:(只有在公共對象模塊中定義的公共用戶定義類型可以強制到變體或從變體或傳遞到後期綁定功能。)VBA:自定義數據類型和函數(返回值)
Option Explicit
Public Type aType
P_Col As Integer
P_Rad As Single
P_X As Single
P_Y As Single
End Type
Function MakePatterns() As Variant
Dim i As Integer
Dim circles() As aType
For i = 1 To 5
ReDim Preserve circles(i)
circles(i).P_Col = Int(i/2)
circles(i).P_Rad = i
circles(i).P_X = i * 10 + 1
circles(i).P_Y = i * 10 + 5
Next
For i = 1 To 5
Debug.Print circles(i).P_Col; circles(i).P_Rad; _
circles(i).P_X; circles(i).P_Y
Next
MakePatterns = circles
End Function
是否有使用類型和功能一起返回數組的方法嗎?還是有更有效的方法?
對不起,我認爲我犯了一個錯誤函數(作爲aType而不是Variant),但只改變了錯誤類型不匹配。 – user110084
由於您將Type傳入或傳出函數,因此類對象應該很好用。此外使用Collection而不是數組。 –
@ user110084試試我的答案下面的代碼 –