2017-05-30 16 views
-1

VBA関数を使用してスプレッドシートに配列を印刷しようとしています。 (LINESTが配列を返す方法に似ています)。しかし、私の関数は配列に割り当てられていないように見えて、それを印刷しません。ここでアレイをExcelスプレッドシートに戻すにはどうすればいいですか?

は、コードのビットは次のとおりです。

Public Function Volume(x As Double, xmax As Double, Flows As Range) As Double() 

dim Y4(9) As Double 

'A bunch of stuff which eventually fills Y4 

Volume = Y4 

End Function 

リソースがあまりにも歓迎されているが、私はかなり長い間、検索後の答えを見つけることができませんでした。

+1

配列数式は、(a)の最初のセルがするので、Ctrlキー+ Shiftキーで入力+ – Slai

+1

を入力する必要があり、あなたの配列は、おそらく '0に9'を宣言されていることを忘れないでください'Y4(0)'の値を受け取り、(b)返される10個の値をすべて受け取るために同じ行の10個の列を選択する必要があります。 – YowE3K

+0

あなたのメソッド**は**配列を返します。 (私はちょうどシリアル番号で配列を埋める)。何かのものが*あなたの関数をテストしている方法で何か問題があります。 –

答えて

0

Excelでは、1つの列しか返さない場合でも、2次元配列(行、列)が必要です。これは動作します:

Public Function Volume(x As Double, xmax As Double, Flows As Range) As Double() 
    Dim lCt As Long 
    Dim Y4(1 To 10, 1 To 1) As Double 

    'A bunch of stuff which eventually fills Y4 
    For lCt = 1 To 10 
     Y4(lCt, 1) = Rnd() 
    Next 
    Volume = Y4 

End Function 
+3

2次元配列は必要ありませんが、「配列の方向付け」の下にあるhttp://www.cpearson.com/excel/returningarraysfromvba.aspxを参照してください。 –

+0

私が推測した最良の答えではありません。 – jkpieterse

+0

私はいつもどのように働いているのかを思い起こさなければならないのです(その理由は私がそのリンクを手軽に持っていた理由です)。私はときどき2次元配列を使用することがあります。なぜなら、戻り範囲に "適合"する方法。 –

関連する問題