Hola, a raíz de una pregunta de un compañero del foro, sobre la obtención de fechas a partir de cadenas de texto, hice una función que creo que resuelve el problema.
Espero que se diviertan mejorandola como me divertí yo creándola.
Código:
'' Returns the date from a string, if mode is not pased the deafult values is DMY
Public Function toDate(s As String, Optional sMode As String = "DMY") As Date
  Dim p As Integer '' position of the year 0 or 2
  Dim a As String[]
  Dim dt As Date
  Dim ix As Integer
  If InStr(s, " ") Then
    s = Split(s, " ")[0]
  Endif
  If InStr(s, "/") > 0 Or InStr(s, "-") > 0 Then
    If InStr(s, "/") > 0 Then
      a = Split(s, "/")
    Else
      a = Split(s, "-")
    Endif
    For ix = 0 To a.Max
      If Len(a[ix]) = 1 Then
        a[ix] = "0" & a
      Endif
    Next
    If Len(a[0]) = 4 Then
      dt = Date(CInt(a[0]), CInt(a[1]), CInt(a[2])) ' ISO
    Else
      If Len(a[0]) = 2 And Len(a[1]) = 2 And Len(a[2]) = 2 Then
        ' Acá esta el problema pues la fecha puede ser MM/DD/YY (EEUU),  DD/MM/YY (Europa), YY/MM/DD (Japón)
        Select Upper(sMode)
          Case "DMY" ' Europe
            dt = Date(CInt(a[2]), CInt(a[1]), CInt(a[0]))
          Case "MDY" ' EEUU
            dt = Date(CInt(a[2]), CInt(a[0]), CInt(a[1]))
          Case "YMD" ' Japón
            dt = Date(CInt(a[0]), CInt(a[1]), CInt(a[0]))
        End Select
      Endif
    Endif
  Endif
  Return dt
End