Как вставить элементы HTML в файл HTML с помощью VBA

ЧТО У МЕНЯ УЖЕ ЕСТЬ
Я использую следующее для извлечения данных из файла HTML. В этом примере перечислены все строки таблицы в файле HTML.

Dim IE As InternetExplorer
Dim HTMLdoc As HTMLDocument
Dim TRelements As IHTMLElementCollection
Dim TRelement As HTMLTableCell
Dim r As Long
Set IE = New InternetExplorer
With IE
    .Navigate filePath
    While .Busy Or .ReadyState <> READYSTATE_COMPLETE: DoEvents: Wend
    Set HTMLdoc = .Document
End With
Set TRelements = HTMLdoc.getElementsByTagName("TR")

Это позволяет мне точно определять данные следующим образом (5-я строка, 1-я ячейка), пример:

A = TRelements.Item(5).ChildNodes.Item(1).innerText

ЧТО Я ИЩУ
Я хочу вставить новую ячейку (элемент TD) в начало строки (элемент TR)

ЖЕЛАЕМЫЙ РЕЗУЛЬТАТ

ИМЯ ФАМИЛИЯ Уолтер Белый

Новый TD-элемент для DOB

Дата рождения ИМЯ ФАМИЛИЯ 09-07-58 Уолтер Белый
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В приведенном ниже примере я использую Element.insertAdjacentHTML() и Element.insertAdjacentElement() для вставки новых ячеек.

Sub Example()
    Dim IE As InternetExplorer
    Dim HTMLdoc As HTMLDocument
    Dim TRelements As IHTMLElementCollection
    Dim TRelement As HTMLTableCell
    Dim r As Long
    Set IE = New InternetExplorer
    With IE
        .navigate filePath
        While .Busy Or .readyState <> READYSTATE_COMPLETE: DoEvents: Wend
        Set HTMLdoc = .document
    End With        
    
    Set TRelements = HTMLdoc.getElementsByTagName("TR")
    Dim TR As HTMLTableRow
    Set TR = TRelements(0)
    TR.insertAdjacentHTML "afterbegin", "<TH>DOB</TH>"
    
    Dim TD As HTMLTableCell
    Set TD = HTMLdoc.createElement("TD")
    
    Set TR = TRelements(1)
    TD.innerText = "09-07-58"
    TR.insertAdjacentElement "afterbegin", TD
    
    IE.Visible = True
End Sub

Эта подпрограмма обновит исходный файл.

Sub OverWriteHTMLDocument(Document As HTMLDocument, FilePath As String)
    Rem VBA OpenTextFile: https://analystcave.com/vba-filesystemobject-fso-in-excel/vba-opentextfile/
    
    Const ForReading = 1, ForWriting = 2, ForAppending = 8 'Need to define constants manually
    Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 'Need to define constants manually
    Dim Url As String
    Url = Replace(Document.Url, "file://", "", , , vbTextCompare)
    With CreateObject("Scripting.FileSystemObject").OpenTextFile(Url, ForWriting, True, TristateFalse)
        .WriteLine Document.DocumentElement.outerHTML
        .Close
    End With
   
End Sub

Это работает, как правильно сохранить изменения в документе?

MK01111000 23.11.2022 12:47

@ MK01111000 Спасибо, что приняли мой ответ. Я добавил подпрограмму, которая будет обновлять файл.

TinMan 23.11.2022 13:29

Другие вопросы по теме