Arrays 在VBA Excel中定义数组并向数组中添加值
我有一个“输入数组”(listcount不是固定的)。我需要为“输入数组”中的每个项创建一个新数组,并将每个项添加为其自己数组的第一项 我无法定义数组的大小,因为子数组的数量不是固定的Arrays 在VBA Excel中定义数组并向数组中添加值,arrays,vba,excel,Arrays,Vba,Excel,我有一个“输入数组”(listcount不是固定的)。我需要为“输入数组”中的每个项创建一个新数组,并将每个项添加为其自己数组的第一项 我无法定义数组的大小,因为子数组的数量不是固定的 应该如何定义它?根据您给出的描述,遵循我的建议 请给我们您的反馈 Private Function AmazingFunction(inputArray As Variant) Dim size As Long Dim i As Long Dim tmp As Variant Di
应该如何定义它?根据您给出的描述,遵循我的建议 请给我们您的反馈
Private Function AmazingFunction(inputArray As Variant)
Dim size As Long
Dim i As Long
Dim tmp As Variant
Dim newArray() As Variant
size = UBound(inputArray) ' Array size
ReDim newArray(size) ' Resizes another array to the same size
For i = 0 To size ' For each value
tmp = CreateArray(length:=0) ' Allows you to dynamically create arrays
' In this case, an array of only one element is created.
tmp(0) = inputArray(i) ' Sets the value of the first array element
newArray(i) = tmp
Next
AmazingFunction = newArray
End Function
动态创建阵列的辅助功能:
Private Function CreateArray(length As Long)
Dim arr() As Variant
ReDim arr(length)
CreateArray = arr
End Function
以下是如何使用该函数的示例:
Private Sub UseTest()
Dim outArray As Variant
Dim intArray As Variant
Dim element As Variant
Dim inputArray(2) As Variant
inputArray(0) = "a"
inputArray(1) = "b"
inputArray(2) = "c"
outArray = AmazingFunction(inputArray)
For Each intArray In outArray
For Each element In intArray
Debug.Print element
Next
Next
End Sub
什么?欢迎来到S.O!你试过什么吗?如果是这样,请提供代码,查看和。
Redim
(这太短了,所以)。您可以考虑使用集合
对象,因为这些对象在大小变化方面更具动态性和灵活性。感谢您抽出时间!我必须将代码更改为ReDim newArray(size),因为我遇到了一个间隔外错误。