VB(A)

[정규식] 문자 숫자 섞여있는 셀에서 숫자만 더하기

당근쨈 2019. 2. 26. 23:57

https://cafe.naver.com/excelmaster/160561에 올라온 질문입니다.

특수문자, 영문자, 숫자 등이 한 곳에 섞인 셀에서

숫자만 더하는 문제입니다.


정규식으로 풀 수 있는 단골로 나오는 문의사항입니다.

셀에서 숫자만 파악한 뒤

하나씩 더해주면 됩니다.


정규식에서 숫자를 골라내는 패턴이 \d 라는 것만 알면 해결할 수 있습니다.


통합 문서1.xlsm


Option Explicit
 
Function NumSum(tmp As StringAs Long
 
    Dim Match As Object
    Dim i As Integer
    Dim matSum As Integer
    
    With CreateObject("VBscript.regexp")    '정규식 생성
    
        .Global = True  '모든 숫자 파악
        .Pattern = "\d+"    '숫자만
        
        If .test(tmp) = True Then
            
            Set Match = .Execute(tmp)
            
            For i = 1 To Match.Count    '셀 내에 숫자가 있을 때 숫자만 더하기
                matSum = matSum + Match(i - 1)
            Next
        
        End If
        
    End With
    
    NumSum = matSum
    
End Function
 
cs