Удалить повторяющиеся предложения (через ;) внутри ячейки - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день! Имеется excel файл, его формат напечатан ниже: Столбец

"A"

- Артикул; Столбец

"B"

- Ссылки на иллюстрации (идут через точку с запятой - ";"). 1. Напишите пожалуйста макрос, который

удалит повторяющиеся предложения внутри ячеек столбца "B"

; 1.1. Эти

повторяющиеся значения разделены точкой с запятой - ";"

; 1.2.

Строк в столбце около 50 тыс.

Пример страницы исходник:

"A1"

18172

"B1"

хттп://images.ru/medias/sys_master/root/h57/h96/9027869409310.jpg; хттп://images.ru/medias/sys_master/root/h57/h96/9027869409310.jpg; хттп://images.ru/medias/sys_master/root/h4f/h35/9027869802526.jpg; хттп://images.ru/medias/sys_master/root/h3a/h31/9027870359582.jpg; хттп://images.ru/medias/sys_master/root/hbd/h60/9038107672606.jpg

"A2"

338539

"B2"

хттп://images.ru/medias/sys_master/root/hab/h93/8908809502750.jpg; хттп://images.ru/medias/sys_master/root/hab/h93/8908809502750.jpg; хттп://images.ru/medias/sys_master/root/hf0/ha6/8855581917214.jpg Пример необходимого результата:

"A1"

18172

"B1"

хттп://images.ru/medias/sys_master/root/h57/h96/9027869409310.jpg; хттп://images.ru/medias/sys_master/root/h4f/h35/9027869802526.jpg; хттп://images.ru/medias/sys_master/root/h3a/h31/9027870359582.jpg; хттп://images.ru/medias/sys_master/root/hbd/h60/9038107672606.jpg

"A2"

338539

"B2"

хттп://images.ru/medias/sys_master/root/hab/h93/8908809502750.jpg; хттп://images.ru/medias/sys_master/root/hf0/ha6/8855581917214.jpg P.S. Во вложении прикрепляю файл со страницами исходник и необходимый результат.

Решение задачи: «Удалить повторяющиеся предложения (через ;) внутри ячейки»

textual
Листинг программы
Sub asd()
For r = 2 To ActiveSheet.UsedRange.Rows.Count
    s = Cells(r, 2)
    a = Split(s, ";")
    For i = 0 To UBound(a) - 1
        For j = i + 1 To UBound(a)
            If a(i) = a(j) Then a(i) = "": Exit For
        Next
    Next
    s = Join(a, ";")
    While InStr(s, ";;")
        s = Replace(s, ";;", ";")
    Wend
    If Left$(s, 1) = ";" Then s = Mid$(s, 2)
    Cells(r, 2) = s
Next
End Sub

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


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

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

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