엑셀 VBA 매크로 macro 함수 이용해서 공백 제거하기, Trim, RTrim, LTrim 함수 이용

 

환경: Microsoft Excel 2013

 

엑셀 시트에 복사해 온 데이터 중 공백이 다수 있다면 제거해야 합니다. 데이터의 양이 많으면 일일이 삭제하기 힘들기 때문에 매크로 함수를 이용하는 것이 좋습니다. 소스는 간단합니다. 현재 Active 된 시트의 전체 셀을 읽어 와서 각 셀마다 Trim() 함수로 제거한 뒤 다시 해당 셀에 집어 넣는 방식입니다. 핵심 소스는 한 줄입니다. 

 

아래 그림과 같이 다른 곳에서 가져온 데이터에 공백이 있는 경우 매크로를 이용해서 제거해 보겠습니다. 

엑셀 VBA 매크로 macro 함수 이용해서 공백 제거하기, Trim, RTrim, LTrim 함수 이용

 

프로그램 상단에 있는 [개발 도구] 탭을 누르시면 매크로 리본 메뉴가 있습니다. 클릭하시면 팝업창이 뜨는데 매크로 실행 함수 명을 적고 오른쪽에 있는 [만들기] 버튼을 클릭합니다.

엑셀 VBA 매크로 macro 함수 이용해서 공백 제거하기, Trim, RTrim, LTrim 함수 이용


매크로 함수를 만든 후 아래 소스를 복사해서 넣습니다. 공백을 제거하는 함수는 Trim() 함수 입니다. 그럼 셀에 있는 양쪽의 공백이 제거되며 중간에 있는 공백은 한 칸만 제거 되고 남습니다.

 

Sub TrimFunction()

   

    ' 시트 전체 지정

    Set rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)

    'Set rng = ActiveSheet.UsedRange.Range("A2", "C8")

       

    For Each ea In rng

        ea.Value = Trim(ea.Value)

    Next ea

 

    Set rng = Nothing

   

End Sub

 

매크로를 실행한 결과 입니다. “황준영백세미데이터는 중간에 3칸의 공백이 있었는데 한 칸만 제거되고 나머지는 남아 있죠. 엑셀에서 제공해주는 TRIM() 함수와는 차이가 있습니다. TRIM() 함수에서는 중간 공백을 제거할 때는 한 칸만 남기고 전부 제거하기 때문입니다.

엑셀 VBA 매크로 macro 함수 이용해서 공백 제거하기, Trim, RTrim, LTrim 함수 이용

 

참고로 왼쪽에 있는 공백과 오른쪽에 있는 공백을 각각 제거하는 함수가 별도로 있습니다. 왼쪽은 LTrim() 이며 오른쪽은 RTrim() 입니다. 한 쪽만 공백을 제거하고 싶다면 둘 중 하나를 사용하시면 되겠죠.

 

Sub TrimFunction()

   

    ' 시트 전체 지정

    Set rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)

    'Set rng = ActiveSheet.UsedRange.Range("A2", "C8")

       

    For Each ea In rng

        ea.Value = LTrim(ea.Value)

        ea.Value = RTrim(ea.Value)

    Next ea

 

    Set rng = Nothing

   

End Sub

Posted by 녹두장군