我正试图在一个更大的宏中编写一个函数,以返回元素列表。数组由电子表格中的单元格生成:
Function Elem_Array() As Variant
Dim Elements() As Variant
i = 1
Cells(i, 38).Select
element1 = Cells(i, 38).Value
element2 = ""
Do While element2 <> element1
i = i + 1
Cells(i, 38).Select
element2 = Cells(i, 38).Value
ReDim Preserve Elements(1 To i)
Elements(i) = element2
Loop
Elements(1) = element1
Elem_Array= Elements
End Function
当试图将Elem_Array设置为等于Elements数组时,它将在Elem_Array不等于任何值的情况下结束函数。当我调用函数时,我会出现错误,因为我试图调用一个空数组或字符串。我曾尝试使用for循环来一次填充一个元素的Elem_Array,但函数结束时没有添加任何内容。Elements((是否被Dim‘ed为Variant或字符串对我来说没有任何改变。对类似问题的建议包括使用Elements(((的集合,然后使用循环使Elem_Array等于Elements,但如果可能的话,我希望尽量减少对代码的过多更改。感谢您的帮助!
更改此项:
Dim Elements() As Variant
对此:
Dim Elements As Variant
第一条语句生成一系列变体
您的函数返回类型是"变量"(单数(,而不是变量数组