728x90
반응형
지난 블로그에서 문자열에서 숫자를 추출하는 함수식을 소개했었습니다.
※ 문자열에서 숫자 추출 : 숫자만 추출하기
이 함수식과 유사한 기능을 하도록
VBA를 사용해 사용자 정의함수를 만들어 사용하면
더욱 편리하게 사용할 수 있습니다.
지난 블로그에서 작성한 예시처럼
정제되지 않은 문자열에서 숫자를 추출할 수도 있고,
전화번호에서 숫자를 추출하거나,
제품 코드에서 숫자 부분만 필요할 때 등
상황에 맞게 활용할 수 있습니다.
전체 코드
Function ExtractNumbers(txt As String) As Long
Dim i As Integer
Dim result As String
result = ""
For i = 1 To Len(txt)
If Mid(txt, i, 1) Like "[0-9]" Then
result = result & Mid(txt, i, 1)
End If
Next i
ExtractNumbers = result
End Function
코드설명
함수의 기본 구조는 문자열(String)을 입력받아 숫자(Long)를 반환합니다.
Function ExtractNumbers(txt As String) As Long
그다음 추출된 숫자를 저장할 변수 result를 빈 문자열로 초기화합니다.
result = ""
그다음 문자열의 개수를 Len() 함수를 사용해 알아낸 다음
Mid(tex, i, 1)로 한 글자씩 추출하고
Like "[0-9]"로 그 글자가 숫자인지 확인합니다.
숫자라면 result 변수에 추가해 줍니다.
For i = 1 To Len(txt)
If Mid(txt, i, 1) Like "[0-9]" Then
result = result & Mid(txt, i, 1)
End If
Next i
숫자인지 확인하는 부분은 아래와 같이 작성해도 동일하게 동작합니다.
If Mid(txt, i, 1) Like "#" Then
Like 연산자의 설명은 아래 링크를 참고하세요
※ [EXCEL VBA] - 엑셀 VBA 문자열 비교 하는 방법, Like 연산자 사용하기
마지막으로 추출된 숫자를 반환합니다.
ExtractNumbers = result
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
728x90
반응형
'EXCEL VBA' 카테고리의 다른 글
[ 엑셀 VBA ] 두 범위의 값 비교하기, VBA로 입력받은 두 범위 비교하기 (0) | 2024.11.12 |
---|---|
[ 엑셀 VBA ] 사용자 정의함수 등록하고 다른 엑셀 파일에서 호출하기 (6) | 2024.11.04 |
엑셀 VBA 문자열 비교 하는 방법, Like 연산자 사용하기 (1) | 2024.11.03 |
[ 엑셀 VBA ] VBA로 ChromeDriver(크롬드라이버) 압축파일 다운받기, VBA로 파일 다운로드 하기 (2) | 2024.10.29 |
[ 엑셀 VBA ] 내 크롬 브라우저의 버전에 맞는 최신 ChromeDriver 버전 VBA로 확인하기 (2) | 2024.10.28 |