Cambia il formato della data dopo averlo caricato su Userform TextBox
Domanda
Ho un utente utente con TextBox.Quando la casella di testo è inizializzata, si sta riempiono con la data effettiva.Quello che voglio fare è riempirlo con formato date personalizzato= DD-MM-YYYY
Ho scritto il codice qui sotto e qualcosa è sbagliato a riguardo, ma non ho idea di cosa sia sbagliato.Codice ha msgbox Prima di inserire il valore, MsgBox
mostra la data in un formato personalizzato ma quando è passato a textbox.value
è come M/DD/YYY
.
Dim year As Long, year_control As Date
year = Format(Date, "yyyy")
year_control = Format(Date, "dd-mm-yyyy")
MsgBox (year_control)
textbox.Value = year_control
.
(...)
If year_control < "01-04-" & year Then
Me.Controls("rok1").Value = True
Else
Me.Controls("rok2").Value = True
End If
. Soluzione
Non è possibile "formattare" una variabile data:
year_control As Date
year_control = Format(Date, "dd-mm-yyyy")
.
Il codice sopra non fa nulla perché una variabile datario è semplicemente forando una data in modo più specifico dei negozi VBA VARIES DATA Variabili come numeri a punto flottanti IEEE a 64 bit (8 byte) che rappresentano le date che vanno dal 1 ° gennaio al 31 al 31 dicembre 9999 e Tempi dalle 0:00:00 alle 23:59:59.
Non importa cosa fai a questa variabile visualizza sempre le date in base al formato di data breve riconosciuto dal tuo computer. I tempi vengono visualizzati in base al formato del tempo (12 ore o 24 ore) riconosciuti dal computer.
Sì, mentre è possibile modificare il valore interno che viene tenuto dalla variabile Date
non è possibile memorizzare il suo formato all'interno dello stesso vairable.
Puoi comunque visualizzarlo comunque che si desidera all'interno di una variabile stringa. Quindi, se hai usato:
Dim year As Long, year_control As Date
Dim strYear_control As string
year = Format(Date, "yyyy")
year_control = Format(Date, "dd-mm-yyyy")
strYear_control = Format(year_control , "dd-mm-yyyy")
MsgBox (strYear_control)
textbox.Value = strYear_control
.
Dovrebbe funzionare come ti aspetti. Poiché la funzione Format()
restituirà una variante (stringa) contenente un'espressione formattata in base alle istruzioni contenute in un'espressione di formato.
Come nota laterale che potresti anche usare
Format$(year_control , "dd-mm-yyyy")
.
Come sarà molto più veloce, puoi anche utilizzare FormatDateTime
per formattare la data in altri modi diversi.