Arrays 从阵列到阵列再到范围
我创建了一个Arrays 从阵列到阵列再到范围,arrays,vba,excel,Arrays,Vba,Excel,我创建了一个tentable作为ReDim tentable(1到RowSize,1到3),对于每个单元格,我有一个55值的向量。请参见下图以更好地理解 现在我想把tentable的全部内容复制到我的工作表中。范围应为[7576x55,3],因为tentable有7576行。有什么聪明快速的方法可以做到这一点吗 这应该可以顺利工作(如果每列中的向量大小相同): 创建适当大小的新二维阵列;然后在原始数组中循环并填充它。可能尺寸V(1到7576,1到3*55)。然后将R=R(7576165)和R.
tentable
作为ReDim tentable(1到RowSize,1到3)
,对于每个单元格,我有一个55值的向量。请参见下图以更好地理解
现在我想把tentable
的全部内容复制到我的工作表中。范围应为[7576x55,3],因为tentable
有7576行。有什么聪明快速的方法可以做到这一点吗 这应该可以顺利工作(如果每列中的向量大小相同):
创建适当大小的新二维阵列;然后在原始数组中循环并填充它。可能
尺寸V(1到7576,1到3*55)
。然后将R=R(7576165)和R.Value=VDim tmpTBL设置为变量:tmpTBL=Range(“A1:BC7576”)。值2:Debug.Print LBound(tmpTBL,1)&“&UBound(tmpTBL,1):Debug.Print LBound(tmpTBL,2)&“&UBound(tmpTBL,2)
。我不明白您想对55(…或3?)个值做什么。@Jeeped我需要将它们粘贴到工作表中。理想情况下,我需要将诱惑(1,1)复制到A1:A55,然后将塔河诱惑(1,2)复制到B1:B5,然后将诱惑(1,3)复制到C1:C55。现在向下移动并堆叠,以便将诱惑(2,1)转换为A56:A111,将诱惑(2,2)转换为B56:B111,等等。数组和工作表都可以处理1048576行。为什么阵列是三维的?@R3uK:我试过了,但没有按我喜欢的方式获取数据。最后我重新打印了整个过程,在第一次填充时得到了一个正确维度的临时表。请参见以下代码:
Sub test_gmeroni()
Dim TempTable() As Variant, _
wS As Worksheet, _
Rg As Range, _
InBound As Long, _
i As Long, _
j As Long
Set wS = ThisWorkbook.Sheets("OutPut")
Set Rg = wS.Range("A1")
ReDim TempTable(1 To 7576, 1 To 3)
For i = LBound(TempTable, 1) To UBound(TempTable, 1)
For j = LBound(TempTable, 2) To UBound(TempTable, 2)
'Calculate vectors size
InBound = UBound(TempTable(i, j), 1)
'Put vector on sheet
Rg.Offset(0, j - 1).Resize(InBound, 1).Value2 = TempTable(i, j)
Next j
'Select next cell to start printing next row
Set Rg = Rg.Offset(InBound + 1, 0)
Next i
End Sub