Arrays 在工作表上调整数组大小

Arrays 在工作表上调整数组大小,arrays,vba,excel,Arrays,Vba,Excel,我总是这样使用Resize()函数: Cells(1, "B").Resize(counter, ColumnCount).value = MyArraY 但MyArray内部总是有一种不同的数组格式,用于将项目放入工作表 有时为了获得我需要使用的相同范围 如果我的数组以这种方式填充 For y = 1 To .ListCount If .Selected(y - 1) Then

我总是这样使用Resize()函数:

Cells(1, "B").Resize(counter, ColumnCount).value = MyArraY
但MyArray内部总是有一种不同的数组格式,用于将项目放入工作表

有时为了获得我需要使用的相同范围

如果我的数组以这种方式填充

                        For y = 1 To .ListCount
                            If .Selected(y - 1) Then
                                ' load subarray into array
                                ListB = vbNullString
                                For f = 1 To .ColumnCount
                                    ListB = ListB & "·" & .List(y - 1, f - 1)
                                Next f
                                MyArraY(counter) = Split(Mid(ListB, 2), "·")
                                counter = counter + 1
                            End If
                        Next y
I must use

Cells(1, "B").Resize(counter, ColumnCount).value = Application.index(MyArraY, 0, 0)
                    counter = 10
                    ReDim MyArraY(1 To counter)
                    For yy = 1 To counter
                    z = z + 1
                        If Cells(yy, 6).value = vbNullString Then
                            MyArraY(z) = Cells(yy, 5).value
                        Else
                            MyArraY(z) = Cells(yy, 6).value
                        End If

                    Next yy
有时

如果MyArraY以这种方式填充

                        For y = 1 To .ListCount
                            If .Selected(y - 1) Then
                                ' load subarray into array
                                ListB = vbNullString
                                For f = 1 To .ColumnCount
                                    ListB = ListB & "·" & .List(y - 1, f - 1)
                                Next f
                                MyArraY(counter) = Split(Mid(ListB, 2), "·")
                                counter = counter + 1
                            End If
                        Next y
I must use

Cells(1, "B").Resize(counter, ColumnCount).value = Application.index(MyArraY, 0, 0)
                    counter = 10
                    ReDim MyArraY(1 To counter)
                    For yy = 1 To counter
                    z = z + 1
                        If Cells(yy, 6).value = vbNullString Then
                            MyArraY(z) = Cells(yy, 5).value
                        Else
                            MyArraY(z) = Cells(yy, 6).value
                        End If

                    Next yy
然后

 Cells(1, "B").Resize(counter, ColumnCount).value = Application.Transpose(MyArraY)
有时

if

MyArraY= range(Cells(1, 1).Address, Cells(10, 5).Address).value

Cells(1, "B").Resize(counter, ColumnCount).value = MyArraY

我如何知道MyArray何时使用这种类型?因为我总是必须选择合适的类型,因为我不知道数据在数组中是如何定位的

您需要手头有数组的维度。我不认为您进行了ReDim保留以获得数组的确切尺寸。这将帮助您正确调整大小。
请参阅:

您能详细说明一下吗?我不明白你在演示什么,你的问题是什么。让我看看我的阵列在每种情况下都是什么样子。你是什么意思!?如何对
myArray
变量进行尺寸标注?
计数器
列计数
的值是多少?除了知道二维数组的填充方式外,无法知道是否应该转置它。对于前者,您有一个数组数组,这就是为什么必须使用索引将其转换为二维数组。我看不出问题的重点-你必须知道你是如何填充数组的。哪里有可能可视化研究数组是如何工作的?问题不是调整数组的大小