Excel에서 텍스트를 하드 리턴으로 바꾸는 매크로

Excel에서 텍스트를 하드 리턴으로 바꾸는 매크로

Excel에서 특정 기호를 검색하고 이를 동일한 셀에서 하드 리턴으로 바꾸고 셀 무결성을 유지하는 매크로를 어떻게 작성합니까?

나는 종종 워드 문서를 엑셀로 변환하고 변환하기 전에 엑셀 문서의 붙여넣기 기능에서 셀 무결성이 유지되도록 워드 문서의 모든 하드 리턴을 파운드 기호(@@)로 바꿉니다. 하드 리턴을 제거하면 각 리턴마다 새 셀이 생성됩니다.

Excel에 붙여넣은 후 "@@" 기호를 하드 리턴으로 바꿔야 하는데 "교체"에서 선택 항목으로 "하드 리턴"을 찾을 수 없습니다. 이를 위해서는 매크로가 필요하다고 생각합니다.

도움을 주셔서 감사합니다.

답변1

실제로 찾기 및 바꾸기 옵션을 사용하여 이 작업을 수행할 수 있습니다.
셀 텍스트를 다음과 같이 변경합니다. ="이 @@은(는) @@ @@ 셀 @@ 텍스트입니다."

그런 다음 @@(또는 바꾸고 싶은 항목)을 찾아 " & char(10) & "로 바꾸십시오. 그러면 출력이 "이 @@은(는) @@ 귀하의 @@ 셀 @@ 텍스트입니다"에서 "이것은 귀하의 셀 텍스트입니다"로 변경됩니다.

이제 줄 바꿈을 활성화하려면 셀 서식을 지정해야 합니다(마우스 오른쪽 버튼 클릭 > 서식 > 정렬 탭 > 단어 줄 바꿈 확인). 새로운 출력은 다음과 같습니다.
이것은 셀 텍스트
입니다 .


답변2

짧은 매크로의 경우:

Sub DoubleAt()
    Cells.Replace What:="@@", Replacement:=Chr(10)
End Sub

답변3

이것은 "하드 랩 텍스트 엑셀 매크로"를 검색했을 때 Google에서 가장 많이 검색된 항목 중 하나였습니다. 너비를 기준으로 텍스트 셀을 래핑하는 솔루션은 다음과 같습니다.

Function hardwrap(useThis As Range, WrapAt As Integer) As String
    Dim i As Integer
    Dim Temp As String
    Dim retVal As String
    i = 0
    retVal = useThis.Value
    With useThis
        If Len(.Value) > WrapAt Then
            Temp = retVal
            Do
                i = i + WrapAt
                Do
                    If Mid(Temp, i, 1) = " " Then
                        Temp = Left(Temp, i - 1) & Chr(10) & Right(Temp, Len(Temp) - i)
                        Exit Do
                    Else
                        i = i - 1
                        If i < 0 Then
                            Exit Do
                        End If
                    End If
                Loop
            Loop While i < Len(Temp) - WrapAt
            retVal = Temp
        End If
    End With
    hardwrap = retVal
End Function

이 코드는 Andrew Poulsom이 작성한 다음 함수에 크게 기반을 두고 있습니다.http://www.mrexcel.com/forum/excel-questions/424309-macro-wrap-text-hard-returns.html#post2097820

기본적으로 문자열이 변수 줄 바꿈보다 길면 줄 바꿈 지점으로 앞으로 점프하고 뒤로 이동하여 공백을 찾습니다. 하나를 찾으면 해당 공백을 개행 문자로 바꿉니다. 그런 다음 문자열의 균형을 위해 반복됩니다.

내 버전은 좀 더 일반적입니다(IMHO).

예:

A1:

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

A2:=hardwrap(A1,40)

"Lorem ipsum dolor sit amet,
consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea
commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa
qui officia deserunt mollit anim id est
laborum."

도움이 되길 바랍니다.

관련 정보