我有一个包含非格式化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上发布了相同的问题。如果我收到任何答案,我会在这里更新