본문 바로가기


IT 이야기

[엑셀 VBA] 텍스트로 저장된 숫자 데이터를 실제 숫자 데이터로 변환

by 낭만ii고양이 2018. 5. 9.







엑셀에서 숫자를 입력했는데 글자 서식이 텍스트인 경우가 있습니다 . 이럴때 이 매크로를 이용하면 간단하게 셀서식을 숫자로 변환할수가 있습니다. 바꾸고자 하는 범위를  사용자가 지정하면 지정된 범위의 셀들의 서식이 변하는 형식입니다. 자신에 맞게 응용해서 활용하면 좋을듯합니다.


■  텍스트로 저장된 숫자 데이터를 실제 숫자 데이터로 변환하는 프로시저


아래 예제는 엑사모 latinum님이 만든 소스입니다. 

제가 필요에 의해서 블로그에 정리하는 차원에서 올린소스이니 착오없으시길 바랍니다. 


Option Explicit
Sub dhTxt2Number()
Dim rngArea As Range
Dim strFormat As String
Const Es As String = "MagicSheet & 엑사모"
On Error GoTo e1
    Set rngArea = Application.InputBox(Prompt:="텍스트로 저장된 숫자를 변환합니다", Title:=Es, Default:=Selection.Address, Type:=8)
    If rngArea Is Nothing Then
    Else
        strFormat = rngArea.Cells(1).NumberFormatLocal '첫번째 셀의 표시형식을 나머지에도 적용한다
        If InStr(strFormat, "@"Then strFormat = "G/표준" '표시형식이 텍스트인 경우라면 일반 서식으로 지정한다.
        dhConvertNumber rngArea, strFormat
    End If
e1:
End Sub
Private Sub dhConvertNumber(rngArea As Range, Optional strNumberFormat = "G/표준")
Dim c As Range
    For Each c In rngArea.Areas '사용자로부터 넘겨 받은 범위를 순환한 뒤
        With c
            .NumberFormatLocal = strNumberFormat '서식을 변경한 뒤
            .Value = .Value '값을 변경한다
        End With
    Next c
End Sub
cs




댓글