Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 문자열, 텍스트 숫자를 문자열 숫자로 변경하기

엑셀(Excel)/VBA
반응형

다른 프로그램이나 엑셀 파일에서 데이터를 복사해 오는 경우 숫자인데도 붙여 넣기를 하면 텍스트로 지정이 됩니다. 이 때 셀을 전체 선택해서 형식을 바꿔 주면 되겠지만 중간에 숫자 텍스트가 아닌 것들이 있을 수 있어서 일일이 영역을 지정해 줘야 합니다. 작업할 데이터가 많은 경우 쉽지 않겠죠. 좀 더 빠르고 정확하게 작업을 하고 싶다면 매크로를 작성해서 돌려 보세요. 

 

 

 

데이터를 텍스트에서 숫자로 변경하기 위해 매크로 함수를 만들었습니다. 매크로는 함수명 앞에 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 에디터에 입력하게 되면 아래 그림처럼 매크로 이름에 함수명이 나타납니다. 매크로 이름을 선택하고 실행을 누르시면 함수가 작동하게 됩니다.

엑셀 VBA 문자열, 텍스트 숫자를 문자열 숫자로 변경하는 방법

 

매크로 함수를 끝내고 나면 아래 그림처럼 형식은 그대로 있고 데이터가 숫자로 변경이 되었죠. 느낌표가 뜨는 것은 형식에 맞지 않은 데이터가 들어가 있다는 뜻입니다. 이것을 한번에 수정하시려면 느낌표 영역을 선택한 후 데이터 형식을 [텍스트]에서 [일반]으로 변경해 주시면 됩니다.

엑셀 VBA 문자열, 텍스트 숫자를 문자열 숫자로 변경하는 방법

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 연산자 사용해서 String 문자열을 합치기
엑셀(Excel) - VBA 숫자를 문자로 변환하는 방법
엑셀 VBA 문자열 글자 하나씩 추출하기
엑셀 VBA 주민번호, 이메일 문자열 잘라 내는 방법
셀 VBA 문자열 자르기, LEFT RIGHT 함수를 이용해 문자열 추출하기
반응형
Posted by 녹두장군

댓글을 달아 주세요