将多行格式化文本合并到单个单元格中

将多行格式化文本合并到单个单元格中

我希望这个问题的答案能让我找到更大的问题,也就是我在 SO 上发布的一个 VBA 问题。

如果我有多行格式化的文本并想将该内容合并到一个单元格中,并且不丢失该格式,可以吗?

看来我可以:

  1. 将多行文本粘贴到单元格中(非格式化)。
  2. 执行粘贴操作将为多行生成多个单元格。

然而,我想要组合两者之一。

我的基本问题是尝试将多行 HTML 放入单个单元格并通过 VBA 保留格式。到目前为止,这还没有成功。

答案1

这个解决方案具有垃圾车芭蕾舞的优雅气质,并且与同一辆被困在交通高峰期的垃圾车一样快,但它确实有效:

j = 1

For Each myRange In Range1
    If Range0.Value = vbNullString Then
        Range0.Value = myRange.Value
    Else
        Range0.Value = Range0.Value & Chr$(10) & myRange.Value
    End If
Next myRange

For Each myRange In Range1
    For i = 1 To myRange.Characters.Count
        Range0.Font.Name = myRange.Characters(Start:=j, Length:=1).Font.Name
        Range0.Characters(Start:=j, Length:=1).Font.FontStyle = myRange.Characters(Start:=j, Length:=1).Font.FontStyle
        Range0.Characters(Start:=j, Length:=1).Font.Size = myRange.Characters(Start:=j, Length:=1).Font.Size
        Range0.Characters(Start:=j, Length:=1).Font.Strikethrough = myRange.Characters(Start:=j, Length:=1).Font.Strikethrough
        Range0.Characters(Start:=j, Length:=1).Font.Superscript = myRange.Characters(Start:=j, Length:=1).Font.Superscript
        Range0.Characters(Start:=j, Length:=1).Font.Subscript = myRange.Characters(Start:=j, Length:=1).Font.Subscript
        Range0.Characters(Start:=j, Length:=1).Font.OutlineFont = myRange.Characters(Start:=j, Length:=1).Font.OutlineFont
        Range0.Characters(Start:=j, Length:=1).Font.Shadow = myRange.Characters(Start:=j, Length:=1).Font.Shadow
        Range0.Characters(Start:=j, Length:=1).Font.Bold = myRange.Characters(Start:=j, Length:=1).Font.Bold
        Range0.Characters(Start:=j, Length:=1).Font.Italic = myRange.Characters(Start:=j, Length:=1).Font.Italic
        Range0.Characters(Start:=j, Length:=1).Font.Underline = myRange.Characters(Start:=j, Length:=1).Font.Underline
        Range0.Characters(Start:=j, Length:=1).Font.Color = myRange.Characters(Start:=j, Length:=1).Font.Color
        Range0.Characters(Start:=j, Length:=1).Font.TintAndShade = myRange.Characters(Start:=j, Length:=1).Font.TintAndShade
        Range0.Characters(Start:=j, Length:=1).Font.ThemeFont = myRange.Characters(Start:=j, Length:=1).Font.ThemeFont
        j = j + 1
    Next i
    j = j + 1
Next myRange

Range0您要将多个单元格复制到的范围在哪里,并且Range1包含您要复制的所有单元格(注意:Range0不能是的子集Range1

相关内容