1

我有一个包含非格式化html数据的列“A”的excel。要格式化此数据,我按照以下步骤操作:

1)从第一个单元格中获取非格式化的 html 数据并将其粘贴到 Internet Explorer 中,并将格式化文本从 html 页面粘贴到 excel列“E”带有标签的 HTML 文本到 Excel 单元格中的格式化文本

2)从excel列“E”中,读取每一行到最后一行的数据并粘贴到保留格式的原始单元格,我使用下面的代码。

Sub ConcatenateRichText(Target As Range, Source As Range)
    Dim Cell As Range
    Dim i As Long
    Dim c As Long
    i = 1
    With Target
        .Clear
        For Each Cell In Source
            .Value = .Value & vbLf & Cell.Value
        Next Cell
        .Value = Trim(.Value)
    End With
    For Each Cell In Source
        For c = 1 To Len(Cell.Value)
            With Target.Characters(i, 1).Font
                .Name = Cell.Characters(c, 1).Font.Name
                .FontStyle = Cell.Characters(c, 1).Font.FontStyle
                .Size = Cell.Characters(c, 1).Font.Size
                .Strikethrough = Cell.Characters(c, 1).Font.Strikethrough
                .Superscript = Cell.Characters(c, 1).Font.Superscript
                .Subscript = Cell.Characters(c, 1).Font.Subscript
                .OutlineFont = Cell.Characters(c, 1).Font.OutlineFont
                .Shadow = Cell.Characters(c, 1).Font.Shadow
                .Underline = Cell.Characters(c, 1).Font.Underline
                .ColorIndex = Cell.Characters(c, 1).Font.ColorIndex
            End With
            i = i + 1
        Next c
        i = i + 1
    Next Cell
End Sub

问题是这段代码需要太多时间来格式化数据,对于 54 行,它需要将近 10 分钟......

有没有更好的解决方案?

这是完整代码的链接http://pastebin.com/fZbQPYbg

提前致谢

注意:在mrexcel.com上发布了相同的问题。如果我得到任何答案,我会在这里更新

4

0 回答 0