2017-08-17 9 views
4

Ich muss ein Array von Objekten von einer Funktion, die ich mit VBA erstellt habe, "zurückgeben". Wenn ich versuche, die Funktion als das Array zu setzen, gibt es mir eine Fehlermeldung, die besagt,Array von Objekten aus Funktion zurückgeben - VBA

Objekt ist erforderlich.

Ich bin nicht sehr an VBA gewöhnt, und ich kann das nicht beheben. Hier ist der Funktionscode:

Function sortedList(listRange As Integer, tempList() As ship) As ship 
    Dim temp As ship 
    Set temp = Nothing 

    For i = listRange - 10 To 1 Step -1 

     For j = 2 To listRange - 10 
      If tempList(j - 1).Arrival > tempList(j).Arrival Then 
       Set temp = tempList(j - 1) 
       Set tempList(j - 1) = tempList(j) 
       Set tempList(j) = temp 
      End If 
     Next j 
    Next i 

    'return tempList - how? 
    Set sortedList = tempList 

End Function 

Ship ist eine „Klasse“, die ich schuf. tempList ist das Array von Objekten aus der Klasse ship, die ich von der Funktion sortedList zurückgeben muss.

Die Funktion funktioniert, es ist nur der Return-Teil, den ich nicht arbeiten kann.

Danke für die Hilfe. Wenn mehr Informationen notwendig sind, lassen Sie es mich wissen!

+0

Haben Sie Typangabe der Funktion Ausgabe versuchen zurückzukehren zu entfernen? – AntiDrondert

Antwort

4

die Funktion Deklarieren Sie ein Array

Function sortedList(listRange As Integer, tempList() As ship) As ship() 

und weisen Sie dann das Ergebnis ohne Set

sortedList = tempList 
+0

Ok, es hat funktioniert! Wie kann ich das, was ich von dieser Funktion zurückgebe, einer Variablen außerhalb der Funktion zuweisen? Wie, Var1 = sortedList (param1, param2) –

+1

Genau so. :) – Rory

Verwandte Themen