如何在VBA中重现Collection示例?

时间:2017-06-22 09:00:03

标签: excel vba list linq collections

我想在Excel中的不同文件中读取大量字符串,并使用它们创建一个组。

如果我理解正确,因为我不知道我将拥有多少个字符串,最好使用Collections而不是数组。

我只想现在重现this example以了解如何使用收藏集。

' Create a list of strings.  
Dim salmons As New List(Of String)  
salmons.Add("chinook")  
salmons.Add("coho")  
salmons.Add("pink")  
salmons.Add("sockeye")  

' Iterate through the list.  
For Each salmon As String In salmons  
    Console.Write(salmon & " ")  
Next  
'Output: chinook coho pink sockeye  

我没有修改过任何东西,而是给了我

  

编译错误:预期:声明结束

说明

  

对于本主题中的示例,请包含Imports语句   System.Collections.Generic和System.Linq名称空间。

我做到了,问题仍然存在。

Imports System.Collections.Generic
Imports System.Linq

我错过了什么?

1 个答案:

答案 0 :(得分:2)

您的示例是.NET,它与VBA完全不同。

在VBA中,您可以这样做:

Dim salmons As Collection  
Set salmons = New Collection

salmons.Add "chinook"
salmons.Add "coho"
salmons.Add "pink" 
salmons.Add "sockeye" 

Dim item as Variant

' Iterate through the list.  
For Each item In salmons  
    Debug.Print item 
Next  

Set salmons = Nothing

修改

由于您是VBA的新手,为了将来参考,请记住,VBA支持With语句。因此,上面的例子可能是这样写的:

With salmons
    .Add "chinook"
    .Add "coho"
    .Add "pink" 
    .Add "sockeye" 
End With