excel - 格式化html数据并写回相同的单元格 - 性能问题

时间:2013-05-12 23:32:01

标签: performance excel excel-vba vba

我有一个包含非格式化html数据的列“A”的Excel。要格式化此数据,我遵循以下步骤:

1)从第一个单元格中取出未格式化的html数据并将其粘贴到Internet Explorer上,然后将格式化文本从html页面粘贴到excel 列“E”HTML Text with tags to formatted text in an Excel cell)< / p>

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上发布了相同的问题。如果我收到任何答案,我会在这里更新

0 个答案:

没有答案