-5

I have a date as text in this format - "22nd July 2016". How do I convert it into date format using Excel-VBA.

Thanks in advance.

RGA
  • 2,577
  • 20
  • 38
Prem
  • 79
  • 1
  • 1
  • 7

2 Answers2

4

One way is to just strip-off the ordinal indicator:

Public Function dateOR(s As String) As Date
    ary = Split(s, " ")
    ary(0) = Left(ary(0), Len(ary(0)) - 2)
    dateOR = DateValue(Join(ary, " "))
End Function

enter image description here

and without VBA you can use the worksheet formula:

=DATEVALUE(SUBSTITUTE(A1,MID(A1,FIND(" ",A1)-2,2),""))
Gary's Student
  • 95,722
  • 10
  • 59
  • 99
0
Sub datestuff()
    myDate = "22nd July 2016"
    myDateArray = Split(myDate, " ")
    myDateArray(0) = Trim(Replace(Replace(Replace(Replace(myDateArray(0), "st", ""), "nd", ""), "rd", ""), "th", ""))
    myDate = DateValue(Join(myDateArray, " "))
    Debug.Print myDate ' outputs '22/07/2016'
End Sub

Seems to me the main issue is the day part; handle that and the rest will be simple enough?

Dave
  • 4,328
  • 2
  • 24
  • 33