2016-04-16 7 views
1

Die folgende triviales Beispiel funktioniert nicht:Wie verwende ich einen benutzerdefinierten Typ in einer Funktion?

Public Type MyType 
    a As Double 
    b As Integer 
End Type 

Function Test() As Variant 
    Dim x As MyType 
    Test = 2 
End Function 

Compile Error: User-defined type not defined

Wie kann ich "definieren" den Typ?

+3

die Typdefinition ist eine Erklärung. Also muss es innerhalb der Deklarationen ** vor ** der ersten Funktion oder Untergruppe sein. Siehe https://msdn.microsoft.com/en-us/library/dd897495%28v=office.12%29.aspx –

+0

@AxelRichter Yup, du hast Recht. In meinem tatsächlichen Code hatte ich eine Funktion über der Deklaration. Ich dachte nicht, dass es relevant war, wenn Sie die Frage posten, aber wie Sie darauf hinweisen, ist es. – arman

Antwort

1

Ihr Code kompiliert in meiner Excel 2010

jedenfalls würde es nichts nützen, gut für einen benutzerdefinierten Typen zu nutzen

hier folgt eine „vollständige“ Beispiel

Option Explicit 

Public Type MyType 
    a As Double 
    b As Integer 
End Type 

Sub main() 
    Dim x As MyType 

    'initialize fields of your type 
    x.a = 1.2 
    x.b = 1 

    MsgBox Test(x) 
End Sub 


Function Test(x As MyType) As Variant 

    Test = x.a + x.b 

End Function 
Verwandte Themen