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

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

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