View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Tim Childs Tim Childs is offline
external usenet poster
 
Posts: 128
Default Testing for <Incorrect Dates

I have somedates in this text/label format (yyyy-mm-dd) i.e. not numbers,

2007-02-01

2007-01-33

2007-02-01



I want to test for valid dates. The basic approach I was using was this:



Sub foo()

Dim sDateStr As String



sDateStr = "2007-01-33"

Debug.Print DateSerial(Left(sDateStr, 4), Mid(sDateStr, 6, 2),
Right(sDateStr, 2))

Debug.Print IsDate(DateSerial(Left(sDateStr, 4), Mid(sDateStr, 6, 2),
Right(sDateStr, 2)))



End Sub



But pseudo-dates such as

33rd January 2007 (see second entry)

get interpreted as 2nd February 2007 and *pass* the test.



What is the best way of testing for such pseudo-dates, please?



Thanks in advance



Tim