2010-11-12 55 views
0

我有一個DLL通過COM暴露給我的Excel工作簿中的VBA宏。在dll中,主函數將來自工作表中各個單元格的一組數據作爲輸入,並生成一個輸出表以顯示在同一個Excel工作表的其他位置。我試圖弄清楚如何隨時調用一個輸入單元來調用這個函數,同時填充所有的輸出單元。如何將Excel單元映射到返回數據表的VBA函數?

它引起了我的注意,一個VBA UDF cannot write to the speadsheet calling it(沒有副作用)...它只能從電子表格讀取並通過函數主返回值返回值。

有沒有一種很好的方法來將大型輸入集映射到大型輸出集,而無需爲表中的每個條目單獨調用dll?

回答

1

是的。如果函數返回一個數組,你可以選擇所有未來結果的細胞,一旦輸入公式,

=TheFunction(a1,b2,c3) 

,然後按Ctrl鍵++輸入