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坏了吗?!
以下代码将数组精美地写入一系列单元格:
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)
话虽这么说,我希望看到代码的一部分,你实际上是想把它放到电子表格上,而不是你构建数组的地方.然后我可以帮助你!