|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
- 엑셀 버전(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으로 표기 되도록 구현하려는게 목표입니다. |
|