Determinazione del simbolo di valuta di un formato (Microsoft Excel)
Jelmer lavora con molti dati finanziari e le informazioni in un foglio di lavoro possono essere in valute di molti paesi. L’unico modo per distinguerli è tramite il simbolo di valuta utilizzato nella formattazione della cella. Ad esempio, una cella può essere formattata per utilizzare il simbolo di valuta “EUR” o “SEK”. Jelmer si chiede se esiste un modo, in una formula, per determinare il simbolo di valuta utilizzato per formattare una data cella.
Non esiste una funzione intrinseca del foglio di lavoro in Excel che restituirà ciò che stai cercando, quindi non è possibile farlo in una formula. È tuttavia possibile creare la propria funzione definita dall’utente che restituirà le informazioni desiderate. Ecco un esempio:
Function GetCurrency(rCell As Range) As String Dim sTemp As String Dim sKeep As String Dim sThrowAway As String Dim J As Integer Application.Volatile sKeep = "Not a Numeric Value" If IsNumeric(rCell) Then sThrowAway = "0123456789.,()+- ]" sTemp = rCell.Text sKeep = "" For J = 1 To Len(sTemp) If InStr(sThrowAway, Mid(sTemp, J, 1)) = 0 Then sKeep = sKeep & Mid(sTemp, J, 1) End If Next J End If GetCurrency = sKeep End Function
Per utilizzare la funzione, dovresti usare quanto segue, assumendo che tu voglia il simbolo di valuta per qualunque cosa sia nella cella B7:
=GetCurrency(B7)
Questo funziona perché la proprietà .Text per una cella restituisce la versione formattata di tutto ciò che è nella cella. Supponendo che la cella contenga un valore numerico (la funzione lo verifica), il testo formattato viene assegnato alla variabile sTemp. Quindi, ogni carattere in quel testo viene confrontato con ciò che è nella stringa sThrowAway. Se c’è una corrispondenza, il carattere viene ignorato, altrimenti viene aggiunto alla variabile sKeep.
Questo è ciò che viene restituito dalla funzione.
Notare inoltre che se la cella da valutare non contiene un valore numerico, viene restituito un messaggio di errore (“Non un valore numerico”).
C’è un trucco di cui essere consapevoli con la funzione: se si modifica la formattazione di una cella di destinazione, ciò non attiva la macro. Questo sembra un difetto di Excel stesso: non attiva un ricalcolo del foglio di lavoro quando si modifica un formato, quindi la macro stessa non viene attivata.
Tuttavia, si attiverà la prossima volta che apporti una modifica al foglio di lavoro che richiede il ricalcolo.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (13787) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.