2016-09-04 5 views
3

ich Probleme, bekommen dies funktioniert. Ich möchte nur ein Array von einer Funktion zurückgeben, der Code, den ich ausprobiert habe, ist unten.Rückkehr ein Array aus einer Funktion in VBA

Sub 
    Dim storeData As Variant: Set storeData = getData 
    Debug.Print storeData(1) 
End Sub 

Function getData() As Variant 
    Dim arr(2) As Variant 
    arr(1) = "ergreg" 
    arr(2) = "1005" 
    getData = arr 
End Function 

werden keine Fehler geworfen, aber nichts zu dem sofortigen Fenster gedruckt wird

+7

Entfernen Sie die 'Set'. – GSerg

+0

Das * sollte eigentlich einen Typenkonfliktfehler ergeben. siehe – Comintern

+0

@ChrisBull beantworten unten (die 'Debug.Print storeData (1)' nur die zweite der drei Elemente im Array drucken) –

Antwort

-1

Mein Fehler - Dank @GSerg es für die Suche.

Nur müssen die 'Set' entfernen. So einfach

2

Wenn Sie alle Array-Elemente drucken möchten, müssen Sie eine For Schleife zum Debug hinzuzufügen:

Dim storeData As Variant 
Dim i As Long 
storeData = getData 

For i = LBound(storeData) To UBound(storeData) 
    Debug.Print storeData(i) 
Next i 

Quick Hinweis: Dim arr(2) As Variant, bedeutet arr hat 3 Elemente (beginnend von 0), Sie ar e Zuweisung von Werten nur an das zweite und dritte Element.

+1

Dank für die Antwort, Ich habe die Basis als 1 gesetzt. Und ich brauche nicht alle Werte zu drucken, brauchte nur die eine für jetzt. – ChrisBull

Verwandte Themen