【问题标题】:VBA - ArrayList - Get element at indexVBA - ArrayList - 获取索引处的元素
【发布时间】:2016-06-14 14:02:52
【问题描述】:

我是 VBA 的新手,我被困在一个简单的任务中,即从 ArrayList 中的 指定索引 中取出一个元素>.

Set resultList = CreateObject("System.Collections.ArrayList")

resultList.Add element1
resultList.Add element2
resultList.Add element3
resultList.Add element4

return resultList.get(2)  '<-- Not working

我查看了 ArrayList 的文档,但没有找到这样的“get(index)”函数: https://msdn.microsoft.com/de-de/library/system.collections.arraylist(v=vs.110).aspx

提前致谢。

【问题讨论】:

  • resultList(2) 会给你第三个元素
  • VBA 中没有合法的Return foo.bar 语句。如果您在 VB.NET 中工作,那么为什么要使用CreateObject 创建ArrayList?您的问题标记正确吗?

标签: vba arraylist


【解决方案1】:

如果您可以合法使用return resultList.Item(2) 并拥有工作代码,那么您使用的不是 VBA,而是 VB.NET。

在 VBA 中,需要使用函数的标识符来分配函数的返回值:

Public Function GetFoo() As String
    GetFoo = "Hello"
End Function

在 VB.NET 中,函数的返回值使用 Return 关键字返回:

Public Function GetFoo() As String
    Return "Hello"
End Function

如果您使用的是 VB.NET,那么您绝对没有任何理由使用CreateObject 创建ArrayList

如果您使用的是 .NET 2.0 或更高版本,那么无论如何使用 ArrayList 的理由绝对为零。

使用通用 List(Of SomeType) 并享受类型安全。

也就是说,ItemArrayList默认属性,所以你也可以这样做:

Return resultList(2)

【讨论】:

    【解决方案2】:

    好的,我自己找到了解决方案:

    resultList.Item(2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 2013-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多