2013-12-19 2 views
1

YYMMDD 형식의 문자열이있는 파일이 있습니다. 예. 120216 (항상이 형식이어야합니다).VBA를 날짜 형식으로 변환하는 문자열

이 형식을 이상적으로 DDMMYY 또는 DDMMYYYY 형식으로 변환하고 싶습니다.

비슷한 문제가있는 사람이 누구이며 어떻게 해결 했습니까?

+0

적어도 스레드에 투표하려면 투표 할 것입니다. FYI 아래의 대답은 내 시나리오에서 100 % 작동하지 않았다. 나는 여전히 약간의 조정을해야했고, 약간의 해킹을 수반했다. – SeekingAlpha

+0

그래서 어떤 코드를 먼저 시도 했는가? 왜이 것이 downvoted인지 꽤 명확하다. – brettdj

답변

4

문자열을 분리 한 다음 DateSerial을 사용할 수 있습니다. 이 예제를 참조하십시오. 의견

감사에서

Option Explicit 

Sub Sample() 
    Dim sDate As String 
    Dim Y As Long, M As Long, D As Long 

    sDate = "120216" 
    Y = Left(sDate, 2) 
    M = Mid(sDate, 3, 2) 
    D = Right(sDate, 2) 

    Debug.Print Format(DateSerial(Y, M, D), "DDMMYY") 
    Debug.Print Format(DateSerial(Y, M, D), "DDMMYYYY") 
End Sub 

후속 조사, 나는 아마 내가 문자열에 전달할 수있는 기능을 작성해야 할 것입니다 것은 변환 얻을 거슬러 올라간다. Debug ... 라인이 변수에 저장 될 가능성이 있습니까? (할 수없는 것일까?) 아니면 다른 대안이 있을까요? - Marco Susilo 4 분 전

오류 처리를 수행하지 않았습니다. 나는 당신이 그것을 돌볼 수 있다고 확신합니까?

Option Explicit 

Sub Sample() 
    Dim Ret As String 

    Ret = GetDate("120216", "DDMMYY") 

    Debug.Print Ret 

    Ret = GetDate("120216", "DDMMYYYY") 

    Debug.Print Ret 
End Sub 

Function GetDate(sDate As String, sFormat As String) As String 
    Dim Y As Long, M As Long, D As Long 

    Y = Left(sDate, 2) 
    M = Mid(sDate, 3, 2) 
    D = Right(sDate, 2) 

    GetDate = Format(DateSerial(Y, M, D), sFormat) 
End Function 
+0

@andyholaday : 건배! 그것을 고정 :) –

+0

고마워, 아마 내가 변환 할 문자열 날짜 전달할 수있는 함수를 작성해야 할 것입니다. Debug ... 라인이 변수에 저장 될 가능성이 있습니까? (할 수없는 것일까?) 아니면 다른 대안이 있을까요? – SeekingAlpha

+1

@MarcoSusilo : 예. 업데이트 된 게시물을 참조하십시오. 페이지를 새로 고쳐야 할 수도 있습니다. –

관련 문제