나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 壹劍 (abelllee)

추천:  2
파일:     조회:  1941
제목:   textbox에 날짜 시간 입력 방법(하이픈&콜론 생략)
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007): 2013

* 아래줄에 질문을 작성하세요 >>

vba 코드 작성 시 폼의 텍스트박스에 숫자로만 12자리 입력 시
1234-56-78 99:00으로 표기할 수 있는 코드를 짜고 싶습니다.

Private Sub TextBox18_Change()
'###@@#
Dim strTemp As String
Dim strNew As String
Dim i As Integer

With TextBox18
    strTemp = .Value '의 값
    If Len(strTemp) = 0 Then Exit Sub
    '-를 제거한 값
    strNew = Application.WorksheetFunction.Substitute(strTemp, "-", "")
    If IsNumeric(strNew) Then '숫자인가를 확인합니다
        i = Len(strNew)
        Select Case i '입력한 숫자의 자리수에 따라 분기합니다
            Case Is <= 4
                .Value = strTemp
            Case Is <= 6
                .Value = Format(strNew, "####""-""" & String(i - 4, "#"))
            Case Is <= 8
                .Value = Format(strNew, "####""-""##""-""" & String(i - 6, "#"))
            Case Else
                .Value = Format(Left$(strNew, 6), "####""-""##""-""##" & String(i - 8, "#"))
        End Select
    Else
        MsgBox "년 ####, 월/일 ## 형식 입력", vbExclamation, Es
        .Value = Empty
    End If
End With

End Sub

이 코드에 시간(hh:mm) 형식으로 넣고 싶습니다.

숫자로 123456780000으로 쓰면 표기는 1234-56-78 00:00으로 표기 되도록 구현하려는게 목표입니다.
 
[불량 게시물 신고]  
slgi
data = "20200617122030"
MsgBox Format(data, "!@@@@-@@-@@ @@:@@:@@")

https://sejinworld.tistory.com/36

참고하세요
06-17 (18:43)
삭제 ■신고
壹劍select case 조건문을 사용할 수는 없을까요?06-17 (19:46)
삭제 ■신고
slgiSelect Case i '입력한 숫자의 자리수에 따라 분기합니다
            Case Is <= 4
                .Value = strTemp
            Case Is <= 6
                .Value = Format(Data, "!@@@@-@@")
            Case Is <= 8
                .Value = Format(Data, "!@@@@-@@-@@")
            Case Else
                .Value = Format(Data, "!@@@@-@@-@@ @@:@@:@@")
        End Select

test를 해보진 않았지만 이렇게 하면 될것 같습니다.
06-24 (09:56)
삭제 ■신고
        
  

작성일 : 2020-06-17(17:08)
최종수정일 : 2020-06-17(17:22)