
Excel 2007.
Quiero una macro para poner la fecha de hoy en la celda actual con formato dd-mmm-aa, por ejemplo, 30-oct-14.
El código que tengo es simple:
'ActiveCell.Value = Formato(Ahora(), "dd-mmm-aa")'
Por alguna razón, esto devuelve "30 14 de octubre" con espacios en lugar de guiones.
Los formatos similares funcionan correctamente. p.ej
dd-mm-aa da 30-10-14,
dd~mmm~aa da 30~Oct~14
El valor real de las celdas se establece en "30 10 2014"
¿Alguien puede darme una solución sencilla y, si es posible, explicarme por qué sucede esto?
Respuesta1
Excel convierte automáticamente el texto que ingresa con la macro en una fecha (y luego aplica un formato de fecha. Para forzar a Excel a verlo como texto, anteponga una comilla simple a la cadena de fecha:
ActiveCell.Value = "'" + Format(Now(), "dd-mmm-yy")
Alternativamente, establezca primero el formato de la celda en tipo de texto:
ActiveCell.NumberFormat = "@"
ActiveCell.Value = Format(Now(), "dd-mmm-yy")