Я борюсь с выходом из коллекции. Подпрограмма выполняет go в файл XML и получает несколько наборов данных (имя + порядковый номер). Только рейтинговые числа go из 1 - 25. Оно отфильтрует имя и даст только рейтинговый номер.
Функция выполняет преобразование строки чисел в более читаемый обзор, например 1, 2, 3, 5, 6, 20, 22, 23, 24 преобразуются в 1-3, 5-6, 20, 22-24. Все числа в первой строке должны быть разделены "," отсюда Coll.add ","
Теперь я знаю, как получить данные с помощью for each item in Coll
, но я не могу получить все значения в 1 строка Может быть, коллекции не являются идеальными функциями для этого?
Итак, вопрос в том, как я могу получить полный набор в виде строки как есть? Потому что все в правильном порядке и с add ","
моя коллекция завершена.
Dim Coll As Collection
Set Coll = New Collection
Set NameNod = oXMLFile.SelectNodes("/Report/Results/Name/elt/NameId/text()")
For i = 0 To NameNod.Length - 1
Ranking = Right(NameNod(i).NodeValue, 2) 'returns only the ranking number
Coll.Add Ranking
Coll.Add ","
Next
Function IntoRanges(aString As String, Optional Delimiter As String = ",") As String
Dim NextBit As String
Dim i As Long
Dim Items As Variant
Items = Split(aString, Delimiter)
IntoRanges = Items(0)
For i = 0 To UBound(Items) - 1
If Val(Items(i)) + 1 = Val(Items(i + 1)) Then
NextBit = "-" & Val(Items(i + 1))
Else
If NextBit = vbNullString Then
IntoRanges = IntoRanges & Delimiter & Val(Items(i + 1))
Else
IntoRanges = IntoRanges & NextBit & Delimiter & Val(Items(i + 1))
NextBit = vbNullString
End If
End If
Next i
IntoRanges = IntoRanges & NextBit
End Function