엑셀 VBA(매크로) - 셀 안의 공백 제거, 셀 내의 모든 공백 제거
본문 바로가기
엑셀 컴퓨터 인터넷/엑셀 VBA

엑셀 VBA(매크로) - 셀 안의 공백 제거, 셀 내의 모든 공백 제거

by Squat Lee 2021. 7. 31.

 

셀 안에 공백이 있을경우 데이터가 다르게 인식되어 Vlookup이나 sumif 등이 제대로 작동되지 않을 때가 있습니다.

 

셀이 몇 개 되지 않으면 일일이 수작업으로 공백을 없애도 되지만, 좀 더 복잡한 경우는 VBA(매크로)를 사용하는 것이 효율적입니다.

 

가령, 왼쪽 또는 오른쪽의 공백만 지우고 싶을때, 아니면 양쪽 공백을 모두 지우고 싶을때 등 다양한 상황에서 좀 더 쉽고 빠르게 작업을 할 수 있습니다.

 

우선, VBA(매크로)를 처음 하시는 분들은 아래 링크를 참고해 주세요.

 

2020.10.25 - [IT와 친해지기/엑셀 VBA 자료실] - 엑셀VBA(매크로) - 시작하기

 

엑셀VBA(매크로) - 시작하기

직장인들은 대부분 엑셀에 익숙하실 겁니다. 하지만, 엑셀을 잘 활용하시는 분들은 아마 드물겁니다. 프로그램을 잘 하시는 분들은 파이썬이나 C언어, 자바 등을 가지고 필요한 도구들을 만들어

dotsnlines.tistory.com

처음 하시더라도 차근차근 따라하시면 무리없이 쉽게 하실 수 있습니다.

 

우선 아래와 같이 임의의 셀에 글자를 입력해 보겠습니다.

왼쪽으로 정렬이 되어있고, 공백을 세개를 넣었습니다.

 

이제 이 공백을 없애는 코드를 작성해 보겠습니다.

왼쪽에 있는 공백을 지우기 위해서는 "LTrim()" 함수를 사용하면 됩니다.

 

실행을 시켜 보겠습니다.(F5를 누르시면 됩니다.)

 

오른쪽에 있는 공백을 없애는 방법도 비슷합니다. "RTrim()" 함수를 사용하면 됩니다.

 

작동이 잘 되네요.

 

셀 내의 글자 양쪽에 있는 공백을 모두 지우고 싶을때는 "Trim()" 함수를 사용하면 됩니다.


그런데 만약 셀 내의 모든 공백을 없애고 싶으면 어떻게 하면 될까요?

 

이때는 엑셀의 내장함수를 VBA로 불러다 쓸 수 있는 "Application"을 이용하면 됩니다.

 

셀 내의 공백을 글자 앞과 중간에 넣었습니다.

 

"Application.Trim()" 으로 엑셀의 내장함수 "Trim()"을 사용해서 공백을 제거했습니다.

 

그런데 중간의 공백 "한 칸"은 제거가 되지 않았네요.(저도 이유는 모르겠습니다.)

 

다른 함수를 써서 모든 공백을 삭제하도록 하겠습니다.

 

임으로 셀 내의 글자 앞과 중간에 공백을 넣었습니다.

 

Replace 함수를 사용하면 됩니다.

 

Replace 함수는 "Replace(공백을 지우고 싶은 값, 바꾸고 싶은 값, 변경되는 값)" 이렇게 사용하시면 됩니다.

셀 내의 모든 공백이 제거되었습니다.

728x90
반응형

댓글