所以,我试图打印100个数组的修改迭代;对于第一行我想要1到100个数组,对于第二行2到100,一直到第100行只有数组(100),所有这些行都以列A开头。我可以打印第一行很好,但对于后来的那些我没有得到任何输出。
q = 1
For m = 1 To last_age
Sheets("Sheet1").Range(Cells(q, 1), Cells(q, UBound(Data) + 1)) = Data 'Works the first pass, but not for q>1
For p = 0 To UBound(Data) - 1
Data(p) = Data(p + 1)
Next p
If UBound(Data) > 0 Then
ReDim Data(0 To UBound(Data) - 1)
q = q + 1
End If
Next m
我的所有变量似乎都正确递增,但在第一个m循环后,我的数据数组不会被放入第二行。有什么想法吗?
答案 0 :(得分:1)
略有不同的方法:
Sub Tester()
Dim data(100), i, last_age, sht As Worksheet, q, m
'fill test array
For i = 1 To 100: data(i - 1) = i: Next
Set sht = Sheets("Sheet1")
last_age = 100
q = 1
sht.Cells(q, 1).Resize(1, UBound(data) + 1) = data
For m = 2 To last_age
q = q + 1
sht.Cells(1, 1).Offset(0, m - 1).Resize( _
1, (UBound(data) + 1) - (m - 1)).Copy _
sht.Cells(q, 1)
Next m
End Sub
答案 1 :(得分:0)
您要在此行中重新标注数组:
setTimeout(fnc, 0)
但您使用ReDim Data(0 To UBound(Data) - 1)
关键字不,因此您的数据将被删除。尝试使用:
Preserve