Как из массива создать новый с уникальными значениями? - 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>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы