Преобразование 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-арт.

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

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