Я сейчас использую это решение Решение Озмике отсюда:
HTML-текст с тегами для форматированного текста в ячейке Excel
Чтобы преобразовать ячейку, содержащую HTML, в форматированный текст и вставить ее в новую ячейку.
Преобразование работает нормально, однако проблема заключается в теге br, всякий раз, когда он появляется в HTML, он вызывает использование нескольких ячеек при вставке форматированного текста
Например, у меня есть это:
<html><p>This is Line 1</p><p><br /></p><p><b>Note:</b> This is Line 2</p>
результат:
![](https://i.stack.imgur.com/Gh4jY.png)
ожидаемый результат:
![[![[![enter image description here](https://i.stack.imgur.com/2WiW1.png)
или с пробелом между двумя строками, который тоже работает.
Одна идея, которую я имел, заключалась в том, чтобы вставить непосредственно в строку формул целевой ячейки. Когда я вставляю эту строку самостоятельно, она содержит несколько строк в одной ячейке, однако теряет форматирование, поэтому я не думаю, что это вариант. Возможен ли ожидаемый результат?
Для справки код, который использовался для достижения того, что у меня есть:
Sub HtmlConvert()
Cells(1, 1).Value = "<html><p>This is Line 1</p><p><br /></p><p><b>Note:</b> This is Line 2</p>"
Dim rng As Range
Set rng = ActiveSheet.Cells(1, 1)
Worksheet_Change rng, ActiveSheet
End Sub
Private Sub Worksheet_Change(ByVal Target As Range, ByVal sht As Worksheet)
Dim objData As DataObject ' Set a reference to MS Forms 2.0
Dim sHTML As String
Dim sSelAdd As String
Application.EnableEvents = False
If Target.Cells.Count = 1 Then
Set objData = New DataObject
sHTML = Target.Text
objData.SetText sHTML
objData.PutInClipboard
Target.Select
sht.PasteSpecial Format:="Unicode Text"
End If
Application.EnableEvents = True
End Sub