將多行格式化文字合併到一個儲存格中

將多行格式化文字合併到一個儲存格中

我希望這個問題的答案能讓我找到一個更大的問題,就是我在 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

相關內容