다른 프로그램이나 엑셀 파일에서 데이터를 복사해 오는 경우 숫자인데도 붙여 넣기를 하면 텍스트로 지정이 됩니다. 이 때 셀을 전체 선택해서 형식을 바꿔 주면 되겠지만 중간에 숫자 텍스트가 아닌 것들이 있을 수 있어서 일일이 영역을 지정해 줘야 합니다. 작업할 데이터가 많은 경우 쉽지 않겠죠. 좀 더 빠르고 정확하게 작업을 하고 싶다면 매크로를 작성해서 돌려 보세요.
▼ 데이터를 텍스트에서 숫자로 변경하기 위해 매크로 함수를 만들었습니다. 매크로는 함수명 앞에 Function 이 아닌 Sub 가 붙습니다. 변환 함수에서 제일 먼저 체크해야 될 것이 범위를 지정하는 것입니다. 샘플에 있는 데이터 영역은 A 열입니다. Range() 와 Cell() 함수를 통해 첫 번째 행 부터 Rows.Count 만큼 영역을 지정했습니다. 그리고 지정한 영역을 하나씩 체크하기 위해 For Each .. In 반복문을 사용했습니다. 반복문 안에는 셀 데이터가 숫자인지 판단하는 IsNumeric() 함수가 있어야겠죠. 숫자 텍스트가 아니면 Format 에서 정상적인 출력이 안되겠죠. Format 은 셀 서식에서 사용자 지정을 적용한 것과 같습니다. Format 에서 “#” 을 적용하면 데이터가 숫자로 변경됩니다.
Sub ChangeStrToInt() Dim rng As Range Dim ea As Range Dim num As Integer Application.ScreenUpdating = False ' 화면업데이트 중지 Set rng = Range(Cells(1, "A"), Cells(Rows.Count, "A").End(3)) ' 범위지정 On Error Resume Next For Each ea In rng If IsNumeric(ea) Then ea = Format(ea, "#") '// 정상처리됨 End If Next ea Set rng = Nothing End Sub |
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 연산자 사용해서 String 문자열을 합치기 ▶ 엑셀(Excel) - VBA 숫자를 문자로 변환하는 방법 ▶ 엑셀 VBA 문자열 글자 하나씩 추출하기 ▶ 엑셀 VBA 주민번호, 이메일 문자열 잘라 내는 방법 ▶ 엑셀 VBA 문자열 자르기, LEFT RIGHT 함수를 이용해 문자열 추출하기 |
▼ 아래 그림처럼 텍스트 형식으로 지정된 숫자 입니다. 이것을 숫자로 바꿔보도록 하겠습니다.
▼ 위에서 만든 함수를 VBA 에디터에 입력하게 되면 아래 그림처럼 매크로 이름에 함수명이 나타납니다. 매크로 이름을 선택하고 실행을 누르시면 함수가 작동하게 됩니다.
▼ 매크로 함수를 끝내고 나면 아래 그림처럼 형식은 그대로 있고 데이터가 숫자로 변경이 되었죠. 느낌표가 뜨는 것은 형식에 맞지 않은 데이터가 들어가 있다는 뜻입니다. 이것을 한번에 수정하시려면 느낌표 영역을 선택한 후 데이터 형식을 [텍스트]에서 [일반]으로 변경해 주시면 됩니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 연산자 사용해서 String 문자열을 합치기 ▶ 엑셀(Excel) - VBA 숫자를 문자로 변환하는 방법 ▶ 엑셀 VBA 문자열 글자 하나씩 추출하기 ▶ 엑셀 VBA 주민번호, 이메일 문자열 잘라 내는 방법 ▶ 엑셀 VBA 문자열 자르기, LEFT RIGHT 함수를 이용해 문자열 추출하기 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 웹브라우저(인터넷 익스플로러) 띄우는 방법 (0) | 2024.06.12 |
---|---|
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기 (0) | 2024.06.05 |
엑셀 VBA 날짜 관련 함수, 개체 사용하는 방법 (0) | 2024.06.02 |
엑셀 VBA 중복 데이터 재귀 호출과 반복문 사용해서 삭제하기 (0) | 2024.06.02 |
엑셀 VBA 문자열 글자 하나씩 추출하기 (0) | 2024.05.31 |
엑셀 VBA 다른 셀에 일치하는 코드 값에 데이터 찾아 추가하기 (4) | 2024.05.29 |
엑셀 VBA 배열 처리를 위한 Array 객체 사용하는 방법 (0) | 2024.05.27 |
엑셀 VBA 옵션 버튼 OptionButton 컨트롤 사용하기 (0) | 2024.05.26 |