Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2009, 22:12   #1
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию Очистка коллекции перед заполнением.

Надо взять уникальные элементы из разных столбцов на другой лист.
Код:
For z = 1 To 122 Step 11
Dim i As Long, j As Long, x As New Collection, a, b()
    Range(Cells(6, z), Cells(50, z)).ClearContents
    a = .Range(.Cells(6, q), .Cells(Rows.Count, q).End(xlUp)).Value
    ReDim b(1 To UBound(a, 1), 1 To 1)
    j = 1
    For i = 1 To UBound(a, 1)
        If a(i, 1) <> "" Then
            On Error Resume Next
            x.Add a(i, 1), CStr(a(i, 1))
            If Err = 0 Then
                b(j, 1) = a(i, 1)
                j = j + 1
            Else: On Error GoTo 0
            End If
        End If
    Next
    Range(Cells(6, z), Cells(UBound(b, 1) + 1, z)).Value = b
    q = q + 12
Next z
Вопрос: как очистить коллекцию перед новым заполнением из следующего столбца?
pivas вне форума Ответить с цитированием
Старый 26.07.2009, 23:05   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub test()
    Dim x As New Collection
    x.Add 1: x.Add 5
    Debug.Print x.count ' возвратит 2
    
    Set x = New Collection ' очистка коллекции
    Debug.Print x.count ' возвратит 0
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 26.07.2009, 23:10   #3
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Как всегда быстро и точно. Большое спасибо за помощь!
pivas вне форума Ответить с цитированием
Старый 27.07.2009, 04:41   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно и так:
Код:
Set x = Nothing
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 27.07.2009, 08:36   #5
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

SAS888, ещё раз спасибо!
pivas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить “Index” для коллекции “Words”? Mack Sim Microsoft Office Word 2 22.04.2009 18:10
Проблема с заполнением asd48 Помощь студентам 1 21.04.2009 00:21
Помогите с заполнением базы из *.cvs harom SQL, базы данных 0 07.03.2009 22:50
Проблема со случайным заполнением массива nyanga's_sist Общие вопросы Delphi 7 14.02.2009 22:32
Коллекции Mike777 Общие вопросы Delphi 0 19.02.2007 11:38