Para trabajar con tiempos en las macros, ya sean tanto fechas como horas, Visual Basic dispone del tipo de variable Date
Al igual que Excel, el valor de la fecha en VB se almacena como un número, cuya parte entera representa el día y cuya parte decimal representa la hora.
Dim hora as Date
Si estás tomando el valor de una celda de tu libro, ésta debe contener un valor de fecha u hora, para que encaje en el tipo de datos Date que has definido para tu variable.
Si los valores los asignas directamente desde el código, para que entienda que se trata de una fecha debes ponerlo entre almohadillas, por ejemplo:
hora=#18:15:43#
para las fechas, recuerda que VBA está en inglés americano(año mes día, o mes día año) así que indica claramente cuál es el año y cuál es el mes, porque la opción por defecto no coincide con lo que piensa un español:
hora=#24/01/08# 'esto es el 8 de enero de 2024
hora=#07/01/2008# ' esto es el 1 de julio de 2008 (interpreta la primera cifra como mes)
hora=#24/01/2008# ' esto es el 24 de enero de 2008 (como la primera cifra es mayor que 12, interpreta que es el día)
Dispones tambien de la función CDate, para convertir una variable de otro tipo, por ejemplo el texto que devuelve como resultado un inputBox, al tipo Date.
no sé si con esto aclaro algo tu duda
------
Ya sé Excel, pero necesito más.
----
Ningún camino de rosas conduce a la gloria
Blog de corredores