728x90

엑셀에서 복잡한 글자열을 편집할 때 숫자만 남기거나 글자만 남기고 싶었습니다.
숫자는 굉장히 많지만 사실 0,1,2,3,4,5,6,7,8,9 이렇게 10개의 패턴으로 나타낼 수도 있습니다.
숫자만 남기거나 ,글자만 남기는 코드입니다.
 

Sub Gettext()                                      '문자만 남기기
    Dim obj As Object
    Set obj = CreateObject("VBScript.RegExp")      'set으로 regext 개체를 생성
    obj.Global = True                               'Global로 설정
    obj.pattern = "[0-9]"                          '숫자 패턴을 입력
    Range("A2").Value = obj.Replace(Range("A2").Value, "")
    '패턴에 해당하는 값을 ""으로 변환
End Sub



Sub Getnum()                                    '숫자만 남기기
    Dim obj As Object
    Set obj = CreateObject("VBScript.RegExp")       'set으로 regext 개체를 생성
    obj.Global = True                               'Global로 설정
    obj.pattern = "[^0-9]"                          '숫자가 아님 패턴을 설정한다.
    Range("A3").Value = obj.Replace(Range("A3").Value, "")
    '패턴에 해당하는 값을 ""으로 변환
End Sub

 
숫자를 [0-9] 패턴으로 지정하거나 숫자가 아닌 모든 값을 연산자 ^를 사용해서 [^0-9]로 지정할 수 있습니다.
Replace를 통해서 패턴을 변환할 수도 있습니다.
위의 코드는 ""으로 빈값을 만들었지만 .이나 ,으로도 변경할 수 있습니다.
 
(사용 결과)

반응형

+ Recent posts