[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열의 마지막 셀까지
For Each rngC In rngAll
For i = 1 To Len(rngC) '// 전체 문자길이 만큼 반복
strText = Mid(rngC, i, 1) '// 각 숫자를 추출해 변수에 넣음
If strText Like "[0-9]" 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
가져다 사용할 경우 보라색 부분만 수정하여 사용하면 됩니다.
범위구간을 지정하는 곳과, 기록할 필드를 지정하는 것입니다.
Offset(0,1) 은 현재 셀의 오른쪽 셀에 기록하겠다는 의미
만약 오른쪽 두번째 열에 기록하겠다고 하면 Offset(0,2) 가 됨
'업무 능력 향상 > 엑셀 VBA 기초' 카테고리의 다른 글
[VBA기초] 셀 중앙정렬 (0) | 2014.06.04 |
---|---|
[VBA기초] 날짜, 시간, 시간대 추출 (0) | 2014.05.24 |
[VBA기초] 영문자만 추출 (0) | 2014.05.22 |
[VBA기초] 요일 구하기 (0) | 2014.05.08 |
[VBA기초] 엑셀메모 한꺼번에 지우기 (0) | 2014.04.30 |