tengo los datos en una hoja de Excel en el siguiente formato:VBA para convertir la cadena Fecha
ItemCode DeliveryDate 5456987 24.01.2009 5456988 5456989 12.24.2009 5456990 12/24/2009
He almacenados los valores de fechaEntrega en una matriz. Necesito tomar una decisión sobre los principios básicos de la fecha y luego imprimir el resultado en una hoja nueva. Así que tengo que convertir los valores en la matriz:
Dim current as Date, highest as Date, result() as Date
For Each itemDate in DeliveryDateArray
current = CDate(itemDate)
if current > highest then
highest = current
end if
' some more operations an put dates into result array
Next itemDate
'After activating final sheet...
Range("A1").Resize(UBound(result), 1).Value = Application.Transpose(result)
Desafortunadamente, CDate() función emite el error:
Run-time error '13':
Type mismatch
¿Hay una función en VBA, que puede:
- de análisis string con cualquier formato de fecha y devolver un objeto de fecha para trabajar.
- devuelve un objeto de fecha vacía, si la cadena está vacía o mal formada (para comparación en el ciclo).
Editar:
para reproducir el error, sólo tiene que ejecutar myDate = CDate("24.01.2009")
de acuerdo con este sitio [http://www.example-code.com /vb/stringtodate.asp] lo estabas haciendo bien ... ¿Dónde arroja el error? ¿En qué fila - la primera o la segunda línea (cadena vacía)? ¿Has intentado cambiar el formato de cadena? Es posible que desee cambiar el formato de cómo está analizando las cadenas de fechas allí. "24.01.2009" puede no ser reconocido pero "24/12/2009" puede: intente convertir el 24/12/2009 solamente y verifique si funciona. Si funciona, entonces el formato 24.01.2009 puede ser inaceptable. –
Intente convertir el 24/12/2009 para ver si funciona. Si funciona, entonces el formato dd.MM.aaaa puede ser inaceptable para CDate. Puede haber una manera de que especifique cómo está formateado para que pueda analizarlo exactamente de la manera que lo desee. Si el formato dd.MM.aaaa es el que está causando el problema, primero cambie el formato como reemplazar el "." con un "/" e intenta convertirlo de nuevo. O formatéelo de forma que se convierta en MM/dd/aaaa y luego conviértalo. Supongo que solo quiero saber si el error "12/24/2009" se saldrá o no. Verifique primero y hágamelo saber. –
@AnnB. Bueno, mi primera pregunta es; ¿Existe una función de VBA que pueda analizar cadena con * cualquier * formato de fecha y devolver un objeto de fecha para trabajar? –