2010-09-30 4 views
0

Je manipule Excel VBA depuis un certain temps, mais je n'ai jamais eu de formation officielle. J'ai la pièce suivante de code sur un module XLSM:Renvoi de types définis par l'utilisateur sur Excel VBA

Public Type ks_solution 
    W As Integer 
    NF As String 
    ID As Integer 
End Type 

Public Sub MySub() 
    //does some things 
    MyKSSolution = MyFunction(params) 
End Sub 

Public Function MyFunction(params) as ks_solution 
    //does stuff and returns a ks_solution 
End Function 

Lorsque je tente d'exécuter le code, le compilateur VBA renvoie un « Seuls les types définis par l'utilisateur définis dans les modules objets publics peuvent être sous la contrainte ou d'une variante ou passé à des fonctions liées en retard "erreur.

Toute aide serait grandement appréciée.

--Yuri

Répondre

4

Er, nevermind. On dirait que le problème était dans les déclarations var.

Je pensais que

Dim v1, v2 as ks_solution 

était le même que

Dim v1 as ks_solution, v2 as ks_solution 

mais apparemment, ce n'est pas. Dans le premier cas, v1 est déclaré comme un Variant. Désolé de prendre votre temps.