Преобразование 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
Подтвердите, пожалуйста, что вы - человек:
  _____      _   _   _    ___    _____    ___  
|__ / __| | | \ | | / _ \ | ____| ( _ )
/ / / _` | | \| | | | | | | _| / _ \
/ /_ | (_| | | |\ | | |_| | | |___ | (_) |
/____| \__,_| |_| \_| \__\_\ |_____| \___/
Введите код, изображенный в стиле ASCII-арт.

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

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