Excel - VBA

IsTime() 셀 값이 시간 값인지 어떻게 확인할 수 있을까?

EGTools 2023. 1. 11. 00:13
728x90

VBA로 셀값의 형태가 어떤 것인지 판단하기 위해서 여러가지 방법을 사용합니다만,

시간값만 있을 경우 판단하기 애매한 경우가 있습니다.

 

입력된 값이 어떤 것이고 셀서식이 어떻게 되어 있느냐에 따라 달라지는데,

아래의 코드와 예제 결과를 참고해 보세요.

Function IsDateValue(Cell As Range)
    IsDateValue = IsDate(Cell.Value)
End Function

Function IsString(Cell As Range)
    IsString = TypeName(Cell.Value) = "String"
End Function

Function IsNumericValue(Cell As Range)
    IsNumericValue = IsNumeric(Cell.Value)
End Function

Function IsTime(Cell As Range)
    On Error Resume Next
    IsTime = IsDate(TimeValue(Format(Cell.Value2, Cell.NumberFormatLocal)))
    On Error GoTo 0
    If IsEmpty(IsTime) Then IsTime = False
End Function

728x90