Преобразование HTML в текст для диапазона ячеек

Этот макрос позволяет преобразовать HTML-код, хранящийся в ячейках Excel,
в обычный текст (без HTML-тегов)

Особенность кода: теги перевода строки «br /» сохраняются.

Пример использования процедуры Convert_HTML_Range_To_Text:
(для этого примера, преобразования выполняются для диапазона ячеек в столбце С, начиная с 4 строки)

Sub Макрос1()
    ' получаем ссылку на диапазон ячеек
    Dim ra As Range: Set ra = Range(Range("c4"), Range("c" & Rows.Count).End(xlUp))
 
    ' преобразуем HTML в текст
    Convert_HTML_Range_To_Text ra
End Sub

Код процедуры Convert_HTML_Range_To_Text:

Sub Convert_HTML_Range_To_Text(ByRef ra As Range)
    On Error Resume Next
    Set doc = CreateObject("htmlFile")
 
    Dim cell As Range
    For Each cell In ra.Cells
        HTML$ = cell.Value
 
        ' теги <br /> мы оставляем, от остальных - избавляемся
        HTML$ = Replace(HTML$, "<br />", "«br»")
        HTML$ = Replace(HTML$, "<br/>", "«br»")
        HTML$ = Replace(HTML$, "<br>", "«br»")
 
        doc.Body.innerHTML = HTML$
        txt$ = doc.Body.innerText
 
        ' восстанавливаем теги <br />
        txt$ = Replace(txt$, "«br»", "<br />")
 
        If txt$ <> HTML$ Then cell = txt$
    Next cell
    Set doc = Nothing
End Sub

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Блин автор спасибо тебе огромное!)!)))) как же ты выручил

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
 __     __  ____    _   _____   ____     ____ 
\ \ / / | _ \ (_) | ____| | ___| / ___|
\ \ / / | |_) | | | | _| |___ \ | |
\ V / | __/ | | | |___ ___) | | |___
\_/ |_| |_| |_____| |____/ \____|
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.