VBA脚本,它将html转换为格式化的文本,并将剪贴板中的多行数据转换为一个单元格

时间:2018-10-26 18:10:29

标签: excel vba excel-vba

我目前正在从这里使用此解决方案:Ozmike的解决方案: HTML Text with tags to formatted text in an Excel cell

要将包含HTML的单元格转换为格式化的文本并将其粘贴到新的单元格中。

转换工作正常,但是br标签存在问题,每当它出现在html中时,当粘贴格式化的文本时,它将导致使用多个单元格

例如,我有这个:

<html><p>This is Line 1</p><p><br /></p><p><b>Note:</b> This is Line 2</p>

结果是:

预期结果是:

[![[![enter image description here

或在两行之间使用空格线也可以。

我的一个想法是直接粘贴到目标单元格的公式栏中。当我自己粘贴该栏时,它在一个单元格中包含多行,但是丢失了格式,因此我不认为这是一个选择。预期的结果可能吗?

作为参考,到目前为止我所使用的代码:

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

0 个答案:

没有答案