
Espero que a resposta a esta pergunta me leve à questão mais ampla, que é uma questão do VBA que postei no SO.
Se eu tiver várias linhas de texto formatado e quiser mesclar esse conteúdo em uma única célula e não perder a formatação, isso é possível?
Parece que posso:
- Cole várias linhas de texto em uma célula (não formatada).
- Execute uma colagem que irá gerar múltiplas células para múltiplas linhas.
Contudo, quero ocombinaçãodos dois.
Meu problema subjacente é tentar colocar HTML de várias linhas em uma única célula e manter a formatação por meio do VBA. Até agora, isso não teve sucesso.
Responder1
Esta solução tem toda a elegância de um balé de caminhão de lixo e é tão rápida quanto o mesmo caminhão preso no trânsito da hora do rush, mas funciona:
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
Onde Range0
está o intervalo para o qual você deseja copiar as múltiplas células e Range1
contém todas as células que você deseja copiar (nota: Range0
não pode ser um subconjunto de Range1
)