엑셀/vba

괄호안 숫자만 추출하기

do121 2024. 1. 16. 10:43

'선택영역의 셀 값중 괄호안 숫자가 있는 경우 숫자만 추출하는 VBA코드임

 

Sub 괄호안숫자추출()
    Dim 선택셀 As Range
    Dim 대상셀 As Range
    Dim 원본값 As String
    Dim 추출된값 As String
    Dim 시작위치 As Integer
    Dim 종료위치 As Integer
    
    ' 선택한 셀 가져오기
    On Error Resume Next
    Set 선택셀 = Selection
    On Error GoTo 0
    
    ' 선택한 셀이 없는 경우 메시지 표시 후 종료
    If 선택셀 Is Nothing Then
        MsgBox "셀을 선택해주세요.", vbExclamation
        Exit Sub
    End If
    
    ' 각 선택한 셀에 대해 반복
    For Each 대상셀 In 선택셀
        ' 원본값 가져오기
        원본값 = 대상셀.Value
        
        ' 괄호 위치 찾기
        시작위치 = InStr(원본값, "(")
        종료위치 = InStr(원본값, ")")
        
        ' 괄호가 없는 경우 다음 셀로 이동
        If 시작위치 = 0 Or 종료위치 = 0 Then
            GoTo 다음셀
        End If
        
        ' 괄호 안의 숫자 추출
        추출된값 = Mid(원본값, 시작위치 + 1, 종료위치 - 시작위치 - 1)
        
        ' 추출된 값을 숫자로 변환하여 오른쪽 셀에 입력
        On Error Resume Next
        대상셀.Offset(0, 1).Value = CDbl(추출된값)  '숫자인 경우 double형으로 반환되고 나머지는 반환값없음

        '대상셀.Offset(0, 1).Value = 추출된값 '추출된 모든 값을 반환
        On Error GoTo 0
        
다음셀:
    Next 대상셀
    
    ' 완료 메시지 표시
    MsgBox "추출 및 입력이 완료되었습니다.", vbInformation
End Sub