在VBA中,如何使用函数返回数组/或写入单元格?

5 arrays excel vba function range

使用这个非常简单的功能:

Function WriteArray() as Variant
 Dim array(0 To 2)
 array(0) = "A"
 array(1) = "B"
 array(2) = "C"
 WriteArray = array
End Function
Run Code Online (Sandbox Code Playgroud)

我期望在Excel电子表格中看到整个数组,但事实并非如此:我只得到第一个字符串.我知道有一些技巧可以在电子表格中显示整个数组(通过选择公式+ F2 + CTRL + SHIFT + ENTER选择一系列单元格),但我更喜欢VBA来处理它.

我还尝试使用Application.Caller变量直接在"调用者"范围内编写,但代码中断了.

非常感谢你的帮助!

编辑:这是我试图使用的另一个代码:

Function WriteArray() As Variant
     Dim arr(0 To 2)
     arr(0) = "A"
     arr(1) = "B"
     arr(2) = "C"
     WriteArray = arr
     Dim StartRow, i As Integer
     For i = 0 To UBound(arr)
        Range("A" & i).Value = arr(i)
     Next
End Function
Run Code Online (Sandbox Code Playgroud)

它在"Range("A"&i).Value = arr(i)"行中断.我的Excel坏了吗?!

Eri*_*ric 6

以下代码将数组精美地写入一系列单元格:

Function WriteArray() As Variant
    Dim AbcList(0 To 2) as Variant
    AbcList(0) = "A"
    AbcList(1) = "B"
    AbcList(2) = "C"
    WriteArray = AbcList
End Function

Function WriteArrayToSpreadsheet()
    Dim MyArray As Variant
    MyArray = WriteArray()

    Dim StartRow, i As Integer
    StartRow = 1
    For i = 0 To UBound(MyArray)
        Range("A" & i + StartRow).Value = MyArray(i)
    Next
End Function
Run Code Online (Sandbox Code Playgroud)

话虽这么说,我希望看到代码的一部分,你实际上是想把它放到电子表格上,而不是你构建数组的地方.然后我可以帮助你!