Как из массива создать новый с уникальными значениями? - VB
Формулировка задачи:
Существует в Экселе столбец с набором значений (как цифр так и слов). Иногда эти значения повторяются. Количество строк со значениями например 10000, из них уникальных примерно 500,
при чем повторяющиеся значения не всегда идут друг за другом.
Вопрос: Как из этого столбца быстро выдернуть в новый столбец уникальные значения?
Предполагаю что надо через Коллекцию действовать, но опыта ее использования нет никакого.
Подскажите как это сделать?
пока думаю как-то так:
Что тут не так? как правильно???
при чем повторяющиеся значения не всегда идут друг за другом.
Вопрос: Как из этого столбца быстро выдернуть в новый столбец уникальные значения?
Предполагаю что надо через Коллекцию действовать, но опыта ее использования нет никакого.
Подскажите как это сделать?
пока думаю как-то так:
Что тут не так? как правильно???
Решение задачи: «Как из массива создать новый с уникальными значениями?»
textual
Листинг программы
<font color="blue">Private</font> <font color="blue">Sub</font> Command1_Click() <font color="blue">Dim</font> SourceArray() <font color="blue">As</font> <font color="blue">String</font> <font color="00AA00">'Исходный массив</font> <font color="blue">Dim</font> TmpArray() <font color="blue">As</font> <font color="blue">String</font> <font color="00AA00">'Временный массив</font> SourceArray = Split(Text1, <font color="teal">" "</font>) <font color="00AA00">'Разбиваем текст на массив слов</font> <font color="blue">ReDim</font> TmpArray(UBound(SourceArray)) <font color="00AA00">'Выделяем память столько же, сколько и под исходный</font> <font color="blue">Dim</font> i <font color="blue">As</font> <font color="blue">Long</font>, j <font color="blue">As</font> <font color="blue">Long</font>, flag <font color="blue">As</font> <font color="blue">Boolean</font>, c <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">For</font> i = <font color="darkblue"><b>0</b></font> <font color="blue">To</font> UBound(SourceArray) <font color="00AA00">'В цыкле удаляем дубликаты</font> <font color="blue">For</font> j = <font color="darkblue"><b>0</b></font> <font color="blue">To</font> UBound(TmpArray) <font color="blue">If</font> SourceArray(i) = TmpArray(j) <font color="blue">Then</font> flag = True: <font color="blue">Exit</font> <font color="blue">For</font> <font color="blue">Next</font> j <font color="blue">If</font> flag = False <font color="blue">Then</font> <font color="00AA00">'Значит нету там этого слова...</font> TmpArray(c) = SourceArray(i): c = c + <font color="darkblue"><b>1</b></font> <font color="blue">End</font> <font color="blue">If</font> flag = False <font color="blue">Next</font> i <font color="00AA00">'Обрежим массив по кол-ву уникальных слов</font> <font color="blue">ReDim</font> Preserve TmpArray(c - <font color="darkblue"><b>1</b></font>) <font color="00AA00">'Соберём массив в текст</font> Text2 = Join(TmpArray, <font color="teal">" "</font>) <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д