Formato de data Excel VBA: hífen como separador fornece um resultado de substituição estranho

Formato de data Excel VBA: hífen como separador fornece um resultado de substituição estranho

Excel 2007.

Quero que uma macro coloque a data de hoje na célula atual formatada como dd-mmm-aa, por exemplo, 30 de outubro de 14.

O código que tenho é simples:

'ActiveCell.Value = Formato(Agora(), "dd-mmm-aa")'

Por alguma razão, isso retorna "30 de outubro de 14" com espaços em vez de hífens.

Formatos semelhantes funcionam corretamente. por exemplo

dd-mm-aa dá 30-10-14,
dd~mmm~aa dá 30~Out~14

O valor real das células está definido como "10 30 2014"

Alguém pode me dar uma solução simples e, se possível, explicar por que isso está acontecendo?

Responder1

O Excel está convertendo automaticamente o texto inserido com a macro em uma data (e, em seguida, aplicando um formato de data. Para forçar o Excel a visualizá-lo como texto, coloque uma aspa simples na sequência de data:

ActiveCell.Value = "'" + Format(Now(), "dd-mmm-yy")

Como alternativa, defina primeiro o formato da célula para tipo de texto:

ActiveCell.NumberFormat = "@"
ActiveCell.Value = Format(Now(), "dd-mmm-yy")

informação relacionada