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