공백을 구분자로 주소를 분리하여 저장하는 VBA 코드이다.
Sub 주소변환()
Dim rngC As Range
Dim rngAll As Range
Dim i, n As Long
Dim v
Dim strU As String
Application.ScreenUpdating = False
Set rngAll = Range([A3], Cells(Rows.Count, "A").End(3)) '// 원본 주소데이터 구간 범위 지정
Range([B2], Cells(Rows.Count, "F").End(3)).Offset(1).ClearContents '// 변환주소값 기록할 곳 초기화
For Each rngC In rngAll '// 원본구간내 셀을 순환 시작
v = Split(rngC, " ") '// 공백으로 문자를 분리
n = UBound(v) '// 분리된 배열의 갯수 파악
rngC.Offset(0, 1) = v(0) '// 배열 v(0) 를 B열에 저장
rngC.Offset(0, 2) = v(1) '// 배열 v(1) 를 C열에 저장
rngC.Offset(0, 3) = v(2) '// 배열 v(2) 를 D열에 저장
If n = 3 Then
strU = v(3)
rngC.Offset(0, 5) = SplitText(strU)
ElseIf n = 4 Then
rngC.Offset(0, 4) = v(3)
strU = v(4)
rngC.Offset(0, 5) = SplitText(strU)
End If
Next rngC
Set rngAll = Nothing '// 메모리 비우기(초기화)
MsgBox "주소 분리 완료"
End Sub
Function SplitText(ByRef r As String)
Dim v
v = Split(r, "-")
If UBound(v) < 1 Then
SplitText = Format(v(0), "0000") & "-" & "0000"
Else
SplitText = Format(v(0), "0000") & "-" & Format(v(1), "0000")
End If
End Function
'업무 능력 향상 > 엑셀 VBA 활용' 카테고리의 다른 글
[VBA] 현재 엑셀 시트 CSV로 내보내기 (0) | 2015.06.03 |
---|---|
[VBA] 속도를 고려한(메모리부하가 없는) 전화번호 정리 (0) | 2015.06.02 |
[VBA] 2개의 조건(다중조건)이 일치하는 데이타 찾기 (0) | 2015.05.31 |
[VBA] 전화번호 - 들어간 거 제거하기 (0) | 2015.05.29 |
[VBA] 전화번호 정리하기 (0) | 2015.05.29 |