/ / Como formatar o VBA TextBox para uma data extensa - vba, excel-vba, excel

Como formatar o VBA TextBox para uma data extensa - vba, excel-vba, excel

Eu tenho uma caixa de texto para exibição de data que mostra a data neste formato: 17/04/2012, mas eu gostaria de formatá-lo para aparecer como "17 de abril de 2012". Eu tentei esse código

UserForm1.txtDate = Format(Long Date)

que estou recebendo erro de sintaxe do compilador.Você, por favor, deixe-me saber como eu posso fazer isso? obrigado

Respostas:

2 para resposta № 1

tem havido alguns posts sobre isso. O culpado parece ser o formato de data do seu sistema. O uso de formatos curtos, médios e longos alterará o resultado quando as configurações do sistema forem alteradas.

  • Nos sistemas dos EUA, principalmente, é feito como, e. Format$(yourdate, “dd/mm/yyyy”)
  • Onde, como sistemas europeus, por ex. Format$(yourdate, “short date”)

Se olharmos explicitamente para definir seu formato, você estará formulando suas configurações regionais!

Boa por exemplo. A data abreviada não será sempre dd / mm / aaaa, mas poderá ser dd / mm / aaaa. Essa é a principal vantagem sobre a especificação real do formato. Simplesmente você pode mudar a aparência da sua data em vez de depender do sistema (com ou sem o seu conhecimento).

Quando nos deparamos com isso pela primeira vez, criamos alguns aplicativos VBA e os enviamos para outro em outro local onde eles têm o formato de data de sistema localizado. Seu telefone toca ...;)

  • Short / Long Date: exiba uma data de acordo com o formato de data longo do seu sistema.
  • Data média: exibe uma data usando o formato de data médio apropriado para a versão do idioma do aplicativo host.

No seu caso você poderia usar,

UserForm1.txtDate.Value = Format$(Date,"mmmm dd, yyyy")

Ou para ser super seguro,

Dim dtDate as Date
dtDate = DateSerial(Year(Date), Month(Date), Day(Date))
UserForm1.txtDate.Value = Format$(dtDate, "mmmm dd, yyyy")

Espero que ajude.