728x90

[VBA기초] 숫자만 추출


Sub 숫자만추출()
    Dim strText As String   '// 각 문자를 넣을 변수
    Dim strU As String      '// 문자를 합쳐갈 변수
    Dim i As Integer        '// 전체 문자길이 만큼 반복할 변수
    Dim rngC As Range       '// 각 Line 변수
    Dim rngAll As Range     '// 전체 범위 지정
    Dim oldTime As Single   '// 걸린 시간 구하는 변수 지정
   
    Application.ScreenUpdating = False    '// 화면 업데이트 (일시) 중지
    oldTime = Timer     '// 시간 변수 설정
    Set rngAll = Range([A2], Cells(Rows.Count, "A").End(3))
    '// A2 셀부터 A열의 마지막 셀까지
       
    For Each rngC In rngAll
        For i = 1 To Len(rngC)                      '// 전체 문자길이 만큼 반복
                strText = Mid(rngC, i, 1)           '// 각 숫자를 추출해 변수에 넣음
                If strText Like "[0-9]" Then        '// 문자가 숫자일 경우
                    strU = strU & Mid(rngC, i, 1)   '// 각 숫자를 합쳐감
                End If
        Next i
        rngC.Offset(0, 1) = strU        '// 추출한 값을 기록
        strU = ""   '// 값을 기록했으니까 초기화가 필요함
    Next rngC
   
    Set rngAll = Nothing  '// 변수 초기화
    MsgBox "총 " & Format(Timer - oldTime, "#0.00") & " : 초 소요"

End Sub


가져다 사용할 경우 보라색 부분만 수정하여 사용하면 됩니다.

범위구간을 지정하는 곳과, 기록할 필드를 지정하는 것입니다.

Offset(0,1) 은 현재 셀의 오른쪽 셀에 기록하겠다는 의미

만약 오른쪽 두번째 열에 기록하겠다고 하면 Offset(0,2) 가 됨


Numeric_extract.vbs


728x90
블로그 이미지

Link2Me

,