서식이 지정된 여러 줄의 텍스트를 단일 셀로 병합

서식이 지정된 여러 줄의 텍스트를 단일 셀로 병합

이 질문에 대한 답변을 통해 제가 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하는 범위는 어디에 있습니까? (참고: 의 하위 집합일 수 없음 )Range1Range0Range1

관련 정보