2015-07-01 64 views
0

我想从一个已定义的单元打印一个数组到excel工作表,例如C3,直到完成为止,是否有创建一个打印数组的循环?将数组打印到excel表

正在打印的每个值是这样的:

Dim difference(0 To 41) As Long 
For Each mycell In ActiveWorkbook.Worksheets("Differences").UsedRange 
    Dim col As Long 
    col = mycell.Column 
    If ActiveWorkbook.Worksheets("Differences").Cells(mycell.Row,mycell.Column).Interior.Color = vbRed Then 
     difference(col) = difference(col) + 1 
    End If 
Next mycell 

Sheets("Summary").Cells(47, 3) = difference(0) 
Sheets("Summary").Cells(48, 3) = difference(1) 
Sheets("Summary").Cells(49, 3) = difference(2) 
etc. 

当你打印出42个不同的值,这将成为相当繁琐!所以我需要一个更简单的方法将数组从起始单元格打印到最终单元格。

回答

0

您可以使用:

Sheets("Summary").Cells(47, 3).Resize(Ubound(difference) + 1).Value2 = Application.Transpose(difference) 

如果声明原数组作为2D和从1开始的索引,可以简化输出,您将不需要0​​。

+0

谢谢,这个作品!但是,由于某种原因,似乎在最后打印“#N/A” – Tony

+0

只有将范围调整为比实际数组大一个范围才会发生。 – Rory

0

你可以试试这个循环:

Dim i 
for i = 0 to to UBound(difference()) 
Sheets("Summary").Cells(47 + i,3).Value = difference(i) 
Next i 

这是假设你想在小区47切换到开始粘贴,这个数字将你需要开始与任何细胞。