2016-09-04 10 views
3

これを動作させるのに問題があります。私はちょうど関数から配列を返すしたい、私が試みたコードは以下のとおりです。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 

エラーがスローされませんが、何もイミディエイトウィンドウに印刷されていないあなたはすべての配列要素を印刷したい場合は、デバッグにForループを追加する必要が

+7

'Set'を削除してください。 – GSerg

+0

これは実際には型不一致エラーを与えるはずです*。 – Comintern

+0

@ChrisBull答えをご覧ください(あなたの 'Debug.Print storeData(1)'はあなたの配列の3つの要素のうち2番目のものだけを出力します) –

答えて

-1

私の間違い - ありがとう@GSergそれを見つけるために。

「設定」を削除するだけです。とてもシンプルです

2

Dim storeData As Variant 
Dim i As Long 
storeData = getData 

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

クイックノートDim arr(2) As Variantarrには3つの要素(0から始まる)があります。第2および第3要素にのみ値を割り当てる。

+1

ありがとう、私はベースを1に設定しました。そして、私はすべての値を印刷する必要はありません。 – ChrisBull

関連する問題