View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
JMB JMB is offline
external usenet poster
 
Posts: 2,062
Default Is the string a date?

This seemed to work okay.

S = Format("12252006", "##/##/####")
If IsDate(S) Then D = CDate(S)



"Chip Pearson" wrote:

If your string is always 8 characters, you could use code like

Dim D As Date
Dim S As String
S = "asdd2006"
On Error Resume Next
Err.Clear
D = DateSerial(Right(S, 4), Left(S, 2), Mid(S, 3, 2))
If Err.Number < 0 Then
Debug.Print "Not a date"
Else
Debug.Print "Date: " & D
End If

If the length of the string varies, you'd have to write a bunch of Left,
Mid, and Right function to break the string into multiple elements, pass
those elements to DateSerial, and test the error.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
www.cpearson.com
(email address is on the web site)



wrote in message
ups.com...
The string can be anything. That's the reason why I didn't post
anything.
The string can be an actual date like 12252006 but it can also be
abcde05
I'm looking for a test to figure out if the string is a date or not a
date

Halim wrote:
Hi,

It is possible if you post your string you want to get the date there...
so someoneelse will helps you...

--

Regards,

Halim


" wrote:

I'm writing a macro in VBA
In it, I'm reading part of a long string and I want to know if that
part is a date or not. Is there a way to do that?

Thank you