打印集合中的条目

时间:2015-11-10 21:43:33

标签: excel vba collections output

我有一个包含x个项目的Collection。我只需要将该Collection的内容输出到Excel列中。

For Each item In myCollection
'Insert code here

Next item  

知道我该怎么做吗?

2 个答案:

答案 0 :(得分:3)

您可以将起始行或列从1更改为您想要的任何内容。您也可以通过将'r = r + 1'替换为'c = c + 1'来增加列来插入单元格。

注意:将“Sheet1”更改为您的工作表名称,这只是我使用的默认名称,因为我不知道您的实际工作表的名称。

Dim r As Integer
Dim c As Integer
r = 1 'Row 1
c = 1 'Column A
For Each item In myCollection
    ThisWorkbook.Worksheets("Sheet1").Cells(r, c).Value = item
    'Increment Row by 1
    r = r + 1
Next item

答案 1 :(得分:1)

这是Dictionary对象优于Collection对象的原因之一。

使用Collections,您必须遍历整个集合对象以检索所有值。

使用词典,您可以一次性检索所有值,这在写入工作表时是一个巨大的速度。一次编写一个单元格是Excel中可以执行的最低效的操作之一。

所以这里是如何转换为使用词典。注意最后一行。整个字典一次写入范围:

Sub zaanwar()

    Dim myDictionary As Object

    Set myDictionary = CreateObject("scripting.dictionary")

    With myDictionary
        .Item("key1") = "val1"
        .Item("key2") = "val2"
        .Item("key3") = "val3"
        .Item("key4") = "val4"
    End With

    [a1:d4] = Application.Transpose(myDictionary.Items)

End Sub