CDate cannot coerce value of IsDate(true)?

T

tkstock

I am using the following code to decompose the date out of a textua
description. However, when it finds the value "1058 8" in the text, i
says that it can be coerced to a date, but then when I use CDate t
coerce it, I get an application error. Any thoughts, anyone? Is thi
a known problem?

Here is my code:

Sub PullOutDate()
For Each x In Selection.Cells
l = Len(x.Value)
For y = 1 To l - 8
If IsDate(Mid(x.Value, y, 6)) Then
x.Cells(1, 2).Value = CDate(Mid(x.Value, y, 6))
ElseIf IsDate(Mid(x.Value, y, 7)) Then
x.Cells(1, 2).Value = CDate(Mid(x.Value, y, 7))
ElseIf IsDate(Mid(x.Value, y, 8)) Then
x.Cells(1, 2).Value = CDate(Mid(x.Value, y, 8))
End If
Next y
Next x
End Sub

Thanks for your help!

Tom Stoc
 
J

Jim Cone

Tom,

The value you specify converts to a date for me: 08/01/1058 ...
'----------------------------
Sub TestForDate()
Dim strDate As String
Dim x As Variant
Dim y As Variant
Dim z As Variant

strDate = "1058 8"
x = IsDate(strDate)
y = CDate(strDate)
z = DateValue(strDate)
MsgBox "Isdate = " & x & ", Cdate is " & y & ", DateValue is " & z
End Sub
'----------------------------

Possibly your windows date settings are out of whack? or
You could try adding a $ after all the Mid functions "Mid$" to make
sure that you are returning a string - but I doubt that is the problem.

Regards,
Jim Cone
San Francisco, CA
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top