Questo tutorial dimostrerà come utilizzare la funzione Format.
Funzione formato
Formatta numeri con formati predefiniti
La funzione Format può convertire un numero in una stringa formattata con formati numerici denominati predefiniti. Questi formati predefiniti sono Valuta, Fisso, Standard, Percentuale, Scientifico, Sì/No, Vero/Falso e On/Off.
12345678910111213141516171819202122232425262728293031 | Sottoformato Esempio_1()Formato MsgBox(1234567.8) 'Il risultato è: 1234567.8'Il formato lascia il numero così com'èFormato MsgBox(1234567.8, "Valuta") 'Il risultato è: $1,234,567,80"La valuta utilizza le impostazioni della valuta del sistema"MsgBox Format(1234567.8, "Fisso") 'Il risultato è: 1234567.80'Fisso: almeno una cifra prima della virgola e'usa le impostazioni di sistema per la parte decimaleMsgBox Format(1234567.8, "Standard") 'Il risultato è: 1.234.567.80'Standard: migliaia di separatori e sistema standardFormato MsgBox(1234567.8, "Percentuale") 'Il risultato è: 123456780.00%'Percentuale, moltiplica per 100 con % e sistema standard.MsgBox Format(1234567.8, "Scientific") 'Il risultato è: 1.23E+06'Notazione scientificaMsgBox Format(1234567.8, "Sì/No") 'Il risultato è: Sì'No se il numero è zeroMsgBox Format(1234567.8, "Vero/Falso") "Il risultato è: Vero"'Falso se il numero è uguale a zeroMsgBox Format(1234567.8, "On/Off") 'Il risultato è: On'Off se il numero è zeroFine sottotitolo |
Formatta numeri con formati definiti dall'utente
La funzione Format può convertire un numero in una stringa, formati numerici formattati definiti dall'utente. 0 è un segnaposto di cifra che visualizza una cifra o uno zero. # è un segnaposto di cifra che visualizza una cifra o niente. Un punto (.) è il segnaposto decimale, % è il segnaposto percentuale e la virgola (,) è il separatore delle migliaia. Il testo può essere aggiunto nel formato utilizzando le virgolette ("") e un singolo carattere può essere aggiunto se viene utilizzato dopo una barra rovesciata (\).
1234567891011 | SottoformatoEsempio_2()MsgBox Format(7.8, "000.00") 'Il risultato è: 007.80MsgBox Format(12347.8356, "000.00") 'Il risultato è: 12347.84MsgBox Format(7.8, "###.##") 'Il risultato è: 7.8MsgBox Format(12347.8356, "###.##") 'Il risultato è: 12347.84MsgBox Format(7.8, "\$.00") 'Il risultato è: $7.80MsgBox Format(1237.835, "ABA0.00") 'Il risultato è: ABA1237.84MsgBox Format(12347.8356, "000.00%") 'Il risultato è: 1234783,56%MsgBox Format(12347.8356, "%000.00") 'Il risultato è: %12347.84Fine sottotitolo |
Formatta i numeri a seconda dei valori
La funzione Formato può avere sezioni diverse utilizzando regole di formato diverse per numeri positivi, numeri negativi, zero e Null. Queste sezioni sono separate da un punto e virgola.
1234567 | Sottoformato Esempio_3()MsgBox Format(7.8, "000.00;(000.00);\z\e\r\o;niente") 'Il risultato è: 007.80MsgBox Format(-7.8, "000.00;(000.00);\z\e\r\o;niente") 'Il risultato è: (007.80)MsgBox Format(0, "000.00;(000.00);\z\e\r\o;niente") 'Il risultato è: zeroMsgBox Format(Null, "000.00;(000.00);\z\e\r\o;niente") 'Il risultato è: nienteFine sottotitolo |
Formatta date con formati predefiniti
La funzione Formato può formattare le date con diversi formati predefiniti. Questi formati sono data lunga, media e breve e anche tempo lungo, medio e breve.
1234567891011121314 | SottoformatoEsempio_4()Dim DateEx come dataDataEx = #4/18/2020 7:35:56 PM#Formato MsgBox (DateEx, "Data generale") 'Il risultato è: 18/04/2020 19:35:56MsgBox Format(DateEx, "Long Date") 'Il risultato è: sabato 18 aprile 2022MsgBox Format(DateEx, "Medium Date") 'Il risultato è: 18-Apr-20MsgBox Format(DateEx, "Short Date") 'Il risultato è: 18/04/2020MsgBox Format(DateEx, "Long Time") 'Il risultato è: 7:35:56 PMMsgBox Format(DateEx, "Medium Time") "Il risultato è: 19:35"MsgBox Format(DateEx, "Short Time") 'Il risultato è: 19:35Fine sottotitolo |
Formattare le date con formati definiti dall'utente
La funzione Formato può formattare le date con formati definiti dall'utente. Caratteri come d, m, y, w, q possono essere utilizzati per creare formati di data personalizzati.
123456789101112131415161718192021222324 | Sottoformato Esempio_5()Dim DateEx come dataDataEx = #4/18/2020 7:35:56 PM#MsgBox Format(DateEx, "m/d/yy") 'Il risultato è: 18/04/2020MsgBox Format(DateEx, "mm-dd-yy") 'Il risultato è: 04-18-2020MsgBox Format(DateEx, "mmm-dd-yy") 'Il risultato è: Apr-18-2020MsgBox Format(DateEx, "mmmm-dd-yy") 'Il risultato è: 18-aprile-2020MsgBox Format(DateEx, "mm-dddd-yy") 'Il risultato è: 04-Sat-2020MsgBox Format(DateEx, "mm-dddd-yy") 'Il risultato è: 04-sabato-2020Formato MsgBox(DateEx, "y")'Il risultato è: 109'numero di giorni nell'anno 1-366Formato MsgBox(DateEx, "ww")Il risultato è: 16'numero di settimane nell'anno 1-52'Formato MsgBox(DateEx, "q")'Il risultato è: 2'quarto dell'anno 1-4'Fine sottotitolo |
Caratteri come le combinazioni h, n, s e am, pm possono essere utilizzati per creare formati di ora personalizzati.
123456789101112 | Sottoformato Esempio_6()Dim DateEx come dataDataEx = #4/18/2020 7:06:05 PM#MsgBox Format(DateEx, "h:n:s") 'Il risultato è: 19:6:5MsgBox Format(DateEx, "hh:nn:ss") 'Il risultato è: 19:06:05MsgBox Format(DateEx, "hh:nn:ss am/pm") 'Il risultato è: 19:06:05MsgBox Format(DateEx, "hh:nn:ss AM/PM") 'Il risultato è: 19:06:05MsgBox Format(DateEx, "hh:nn:ss a/p") 'Il risultato è: 07:06:05 pMsgBox Format(DateEx, "hh:nn:ss A/P") 'Il risultato è: 07:06:05 PFine sottotitolo |
Formato per una migliore leggibilità
La funzione di formattazione può formattare stringhe o numeri per una migliore leggibilità. @ è un segnaposto di carattere utilizzato per visualizzare un carattere o uno spazio. & è un segnaposto di carattere utilizzato per visualizzare un carattere o niente. ! può essere utilizzato per utilizzare i caratteri segnaposto da sinistra a destra e può essere utilizzato per applicare lettere minuscole o maiuscole. Può essere utile per formattare numeri di telefono o altri numeri grandi senza modificare il valore originale.
12345678910111213141516171819202122 | Sottoformato Esempio_7()Dim StrEx As StringStrEx = "ABCdef"MsgBox Format(StrEx, "-@@@-@@-@@") 'Il risultato è: - AB-Cd-efMsgBox Format(StrEx, "-&&&-&&-&&") 'Il risultato è: -AB-Cd-ef'Inizia da destra a sinistra.MsgBox Format(StrEx, "-@@@-@@-@@-@@") 'Il risultato è: - -AB-Cd-efMsgBox Format(StrEx, "-&&&-&&-&&-&&") 'Il risultato è: --AB-Cd-ef'Inizia da destra a sinistra. Quando mancano i caratteri @ aggiunge spazi e & non aggiunge nullaMsgBox Format(StrEx, "!-@@@-@@-@@-@@") 'Il risultato è: -ABC-de-f -MsgBox Format(StrEx, "!-&&&-&&-&&-&&") 'Il risultato è: -ABC-de-f'Inizia da sinistra a destra a causa di !MsgBox Format(StrEx, ">") 'Il risultato è: ABCDEFMsgBox Format(StrEx, "<") 'Il risultato è: abcdefFormato MsgBox(1234567890, "@@@-@@@-@@@@") 'Il risultato è: 123-456-7890Formato MsgBox(1234567890, "@@@@-@@@-@@@") 'Il risultato è: 1234-567-890Fine sottotitolo |
Formatta i modelli nelle celle del foglio di lavoro
La funzione di formato può essere utilizzata nel codice VBA e anche nelle celle dei fogli di lavoro. Seleziona la cella o l'intervallo di celle e segui la voce di menu Formato celle > Personalizzato. Ci sono molti formati definiti dall'utente e anche l'utente può creare i propri formati personalizzati.
Formatta modelli con formula di testo
La funzione format può modificare direttamente il formato di un valore all'interno del codice VBA. Possiamo anche usare la formula Excel Text per ottenere lo stesso risultato usando WorksheetFunction.Text.
1234567891011 | Sottoformato Esempio_8()Formato MsgBox(7.8, "000.00")'Il risultato è: 007.80MsgBox WorksheetFunction.Text(7.8, "000.00")'Il risultato è: 007.80Formato MsgBox(7.8, "###.##")'Il risultato è: 7.8MsgBox WorksheetFunction.Text(7.8, "###.##")'Il risultato è: 7.8Fine sottotitolo |