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