728x90

날짜를 표시하는 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

블로그 이미지

Link2Me

,