Я начинаю с какого-то заимствованного кода, который просматривает один массив столбцов (ANALYSIS_S1_V1) с тысячами записей, деактивирует и сортирует их, а затем заполняет список с помощью результат.Перемещение элементов из списка в диапазон Excel VBA
Теперь мне нужно перечислить все предметы в коллекции (по порядку) на другом листе в моей электронной таблице Excel.
Я новичок в VBA и на этом форуме, надеюсь, я не пропустил ответ, который уже есть. Я нашел один вопрос, который казался похожим, но я недостаточно опыт, чтобы применить его к проекту, над которым я работаю. Вот что я уже нашел: How to write a VBA collection to an Excel sheet
Я также искал Microsoft и нашел то, что выглядит как решение, но я не могу заставить его работать в своем коде (я имею в виду это работает только в более сложные языки программирования, хотя упоминается VB): http://msdn.microsoft.com/en-us/library/83h9yskw.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
Любая помощь будет оценена по достоинству.
Sub RemoveDuplicates2()
Dim AllCells As Range, Cell As Range
Dim NoDupes As New Collection
Dim i As Integer, j As Integer
Dim Swap1, Swap2, Item
' The items are in a range named ANALYSIS_S1_V1
Set AllCells = Sheets("Data").Range("ANALYSIS_S1_V1")
' The next statement ignores the error caused
' by attempting to add a duplicate key to the collection.
' The duplicate is not added - which is just what we want!
On Error Resume Next
For Each Cell In AllCells
NoDupes.Add Cell.Value, CStr(Cell.Value)
' Note: the 2nd argument (key) for the Add method must be a string
Next Cell
' Resume normal error handling
On Error GoTo 0
' Sort the collection
For i = 1 To NoDupes.Count - 1
For j = i + 1 To NoDupes.Count
If NoDupes(i) > NoDupes(j) Then
Swap1 = NoDupes(i)
Swap2 = NoDupes(j)
NoDupes.Add Swap1, before:=j
NoDupes.Add Swap2, before:=i
NoDupes.Remove i + 1
NoDupes.Remove j + 1
End If
Next j
Next i
For Each Item In NoDupes
BasicReportForm1.ReportSubject_Index.AddItem Item
Next Item
End Sub