我有一个包含x个项目的Collection。我只需要将该Collection的内容输出到Excel列中。
For Each item In myCollection
'Insert code here
Next item
知道我该怎么做吗?
答案 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