날짜를 표시하는 VBA 코드다.
/ 는 Split 함수를 이용하여 배열로 저장하면 간단하게 해결할 수 있다. 함수식을 사용하면 계산이 좀 더 복잡해진다.
DateSerial(year, month, day) 를 이용하여 날짜를 표시한다.
그리고 NumberFormat 으로 서식을 지정해줘야 깔끔하게 정리가 된다.
Resize 기능을 이해하려면 아래 코드를 한줄씩 실행해보면 선택영역이 어떻게 변경되는지 확인할 수 있다.
Sub resize_func()
Range("A3:A5").Offset(, 1).Resize(, 3).Select
Range("A3").Resize(RowSize:=2, ColumnSize:=2).Select
Range("A3").Resize(2).Select
Range("A3").Resize(, 2).Select
Range("A3:A5").Resize(, 2).Select
End Sub
Sub date_extract()
Dim v
Dim rngC As Range
Dim rngAll As Range
Set rngAll = Range([A3], Cells(Rows.Count, "A").End(3))
For Each rngC In rngAll '// A열의 마지막 데이터가 있는 곳까지
v = Split(rngC, "/") '// A열의 셀을 / 로 구분하여 배열로 저장
rngC.Offset(0, 1) = v(2)
rngC.Offset(0, 2) = v(0)
rngC.Offset(0, 3) = v(1)
rngC.Offset(0, 4) = DateSerial(v(2), v(0), v(1))
Next rngC
rngAll.Offset(, 1).Resize(, 3).NumberFormat = "General"
rngAll.Offset(, 4).NumberFormat = "yyyy-mm-dd"
Set rngAll = Nothing
MsgBox "작업완료"
End Sub
'업무 능력 향상 > 엑셀 VBA 기초' 카테고리의 다른 글
[VBA기초] GetOpenFilename (1) | 2015.06.13 |
---|---|
Error Trapping with Visual Basic for Applications (0) | 2015.06.09 |
[VBA기초] 편리한 범위 지정(시작행, 마지막행) (0) | 2015.06.04 |
[VBA기초] ASC(아스키)코드 (0) | 2015.05.23 |
[VBA기초] 제대로 설정하는 Range(구간범위) (0) | 2015.05.13 |