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열의 마지막 셀까지, 빨간색 A는 D로 변경하면 A2 에서 D열의 마지막까지가 변수 범위가 됨
       
    For Each rngC In rngAll
        For i = 1 To Len(rngC)              '// 전체 문자길이 만큼 반복
                strText = Mid(rngC, i, 1)   '// 각 문자를 추출해 변수에 넣음
                If Asc(UCase(strText)) >= 65 And Asc(UCase(strText)) <= 90 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


그대로 가져다 활용할 경우에는 보라색만 변경해서 사용하면 됩니다.

즉 범위를 어디까지 지정할 것인가, 어디에 기록을 할 것인가 하는 부분입니다.


Eng_extract.vbs


728x90
블로그 이미지

Link2Me

,