2016-06-14 8 views
0

я вроде новой для VBA и я застрял на простой задаче получения элемента из моего ArrayList на spesified индекса.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, но не смог найти такой «получить (индекс)» функцию: https://msdn.microsoft.com/de-de/library/system.collections.arraylist(v=vs.110).aspx

Спасибо заранее.

+0

' resultList (2) 'даст вам третий элемент – Dave

+0

Там нет никакого юридического 'Вернуть foo.bar' в VBA. Если вы работаете в VB.NET, то почему вы используете 'CreateObject' для создания' ArrayList'? Правильно ли указан ваш вопрос? –

ответ

2

Если вы можете законно использовать 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) и наслаждайтесь типом безопасности.

Это говорит, Item является свойствоArrayList «s по умолчанию, так что вы можете точно так же сделать это:

Return resultList(2) 
0

Хорошо, я нашел решение сам:

resultList.Item(2) 
Смежные вопросы