Formato de fecha de Excel VBA: el guión como separador da un resultado de sustitución extraño

Formato de fecha de Excel VBA: el guión como separador da un resultado de sustitución extraño

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")

información relacionada