0
我本來該返回的二維變量數組一個VBA函數:推2-d Variant數據到FormulaArray
Public Function SplitIntoCells(some_data As String) As Variant()
End Function
所用式I陣列語法從另一個VBA函數調用它:
Public Function MyWrapper() as Variant
MyWrapper = SplitIntoCells("somestring")
End Function
從Excel中,如果我選擇一個足夠大的範圍,然後做:
= MyWrapper()
然後按CTRL + SHIFT + ENTER,數據很好地分割成該範圍內的每個單獨的單元格。
但是爲了自動執行,如果我改變MyWrapper到:
Public Function MyWrapper()
ActiveSheet.Range("A1:E20").Select
Selection.FormulaArray = SplitIntoCells("somestring")
End Function
以上不起作用。我看不到在Excel中顯示的內容。
我在做什麼錯?
更新:
只是用於測試,如果我稍微修改MyWrapper()到:
Public Function MyWrapper()
Dim variant_temp() as Variant
variant_temp = SplitIntoCells("somestring")
ActiveSheet.Range("A1:E20").Select
Selection.FormulaArray = variant_temp
End Function
variant_temp預測地具有從SplitIntoCells返回但後續Selection.FormulaArray仍具有後的2-d陣列即使在作業後也沒有任何內容。我相信我錯失了一些非常明顯的東西。
有沒有其他方法可以實現我想要的? – ForeverLearning
是的:您可以從像worksheet_change或worksheet_selectionchange這樣的事件中運行它。或者只是把它放在一個普通的Sub中,並用一個按鈕調用它...最佳方法取決於您的特定需求。 –