2017-05-30 60 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

數組公式必須使用Ctrl + Shift鍵可以輸入+輸入 – Slai

+1

而且不要忘記,你的陣列很可能被宣佈爲'0要9',所以(一)第一單元將接受'Y4(0)'的值和(b)你將需要在同一行中選擇10列來接收所有返回的10個值。 – YowE3K

+0

你的方法** IS **返回一個數組。 (我只是用序列號填充數組)。 *一堆東西*或者你測試你的函數的方式都有問題。 –

回答

0

即使您只返回一列,Excel也需要一個二維數組(行,列)。所以此工程:

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-D數組 - 但看到「定位數組」下的http://www.cpearson.com/excel/returningarraysfromvba.aspx –

+0

嗯,不是我發佈的最佳答案我猜:-) – jkpieterse

+0

我經常不得不提醒自己這是如何工作的(這就是爲什麼我有這個鏈接,方便...)我有時使用二維數組,因爲它顯示,因爲它更容易可視化它如何「適合」在返回範圍。 –

相關問題