Sebbene Excel disponga già di centinaia di funzioni integrate come SOMMA, CERCA. VERT, SINISTRA e così via, le funzioni integrate disponibili in genere non sono sufficienti per eseguire attività abbastanza complesse. Tuttavia, non preoccuparti perché devi solo creare tu stesso le funzioni richieste.
Fare un passo
Passaggio 1. Creare una nuova cartella di lavoro o aprire la cartella di lavoro che si desidera elaborare con Funzioni definite dall'utente (UDF)
Passaggio 2. Aprire Visual Basic Editor in Microsoft Excel tramite Strumenti->Macro->Visual Basic Editor (o premere la scorciatoia Alt+F11)
Passaggio 3. Fare clic sul pulsante Modulo per aggiungere un nuovo modulo al foglio di lavoro
Puoi creare una UDF in una cartella di lavoro senza aggiungere un nuovo modulo, ma la funzione non funzionerà in altri fogli di lavoro nella stessa cartella di lavoro.
Passaggio 4. Crea la "testa" o il "prototipo" della tua funzione
Il prototipo della funzione deve seguire la seguente struttura:
funzione pubblica "Nome funzione" (parametro1 Come tipo1, parametro2 Come tipo2) Come tipo di risultato.
I prototipi possono avere quante più funzioni possibili e i loro tipi possono essere tutti i tipi di dati di base o i tipi di oggetti Excel sotto forma di Intervallo. Puoi pensare ai parametri come "operanti" (operatori) su cui agirà la funzione. Ad esempio, quando si scrive SIN(45) per calcolare il seno di 45 gradi, il numero 45 verrà preso come parametro. Quindi, il codice funzione utilizzerà quei valori per eseguire calcoli e visualizzare i risultati.
Passaggio 5. Aggiungere il codice funzione per assicurarsi di: 1) utilizzare il valore fornito dal parametro; 2) passare il risultato al nome della funzione; e 3) chiudere la funzione con la frase "end function". Imparare a programmare in VBA o in qualsiasi altra lingua richiede molto tempo e una guida dettagliata. Fortunatamente, queste funzioni di solito hanno piccoli blocchi di codice e non fanno molto uso delle funzionalità del linguaggio di programmazione. Ecco alcuni elementi del linguaggio VBA che possono essere utilizzati:
- Il blocco If (if), che consente di eseguire una porzione di codice solo se la condizione è soddisfatta. Come esempio:
- . Puoi omettere la parola chiave Else insieme alla seconda parte del codice poiché è facoltativa.
- Il blocco Do (do), che esegue una parte del codice While o Until quando o finché la condizione non viene soddisfatta. Come esempio:
- . Notare anche la seconda riga che "dichiara" la variabile. Puoi aggiungere variabili al tuo codice per un uso successivo. Le variabili fungono da valori temporanei nel codice. Infine, considera la dichiarazione della funzione come BOOLEAN, che è un tipo di dati che consente solo valori TRUE o FALSE. Questo metodo per determinare i numeri primi è tutt'altro che ottimale, ma il codice è stato scritto in modo tale da essere facile da leggere.
- Per blocco (to), che esegue una certa quantità di codice. Come esempio:
- Un valore costante digitato direttamente nella formula della cella. In questo caso, il testo (stringa) deve essere citato.
- Riferimenti di cella, ad esempio B6 o gamma come LA1: do3 (il parametro deve essere il tipo di dati “Intervallo”)
-
Un'altra funzione racchiusa nella tua funzione (la tua funzione può anche essere racchiusa in un'altra funzione), ad esempio: =Factorial(MAX(D6:D8))
Passaggio 7. Assicurati che i risultati siano corretti
Usalo più volte per assicurarti che la funzione sia in grado di gestire correttamente i vari valori dei parametri:
Suggerimenti
- Quando scrivi blocchi di codice in strutture di controllo come If, For, Do, ecc., assicurati di indentare (inserire il bordo della riga sinistra leggermente all'interno) del blocco di codice premendo più volte la barra spaziatrice o tab. Ciò renderà il codice più facile da capire e gli errori saranno molto più facili da trovare. Inoltre, l'aumento della funzionalità diventa più facile da realizzare.
- Se non sai come scrivere il codice per le funzioni, leggi l'articolo Come scrivere una macro semplice in Microsoft Excel.
- A volte, le funzioni non necessitano di tutti i parametri per calcolare il risultato. In questo caso, è possibile utilizzare la parola chiave Optional prima del nome del parametro nell'intestazione della funzione. È possibile utilizzare la funzione IsMissing(parameter_name) nel codice per determinare se a un parametro è assegnato o meno un valore.
- Usa nomi non utilizzati come funzioni in Excel in modo che nessuna funzione venga sovrascritta ed eliminata.
- Excel ha molte funzioni integrate e la maggior parte dei calcoli può essere eseguita utilizzando queste funzioni integrate, singolarmente o tutte in una volta. Assicurati di dare un'occhiata all'elenco delle funzioni disponibili prima di iniziare a programmare da solo. L'esecuzione può essere eseguita più velocemente se si utilizzano le funzioni integrate.
Avvertimento
- Per motivi di sicurezza, molte persone disabilitano le macro. Assicurati di informare i destinatari della cartella di lavoro che la cartella di lavoro inviata contiene macro e che queste macro non danneggeranno i loro computer.
- La funzione utilizzata in questo articolo non è il modo migliore per risolvere il problema correlato. L'esempio viene utilizzato per spiegare l'uso delle strutture di controllo del linguaggio.
- VBA, come altri linguaggi, ha diverse altre strutture di controllo oltre a Do, If e For. La struttura discussa qui descrive solo cosa può essere fatto nel codice sorgente della funzione. Ci sono molte guide su Internet che possono essere utilizzate per aiutarti a imparare VBA.
Risultato del corso con funzione pubblica (come valore intero) come stringa
Se valore >= 5 Allora
Risultati del corso = "Accettato"
Altro
Risultati del corso = "Rifiutato"
Finisci se
Fine funzione
Notare gli elementi nel blocco di codice If:
IF condizione THEN codice ELSE codice END IF
Funzione pubblica BilPrima(value As Integer) As Boolean
Dim i As Integer
io = 2
BilPrima = Vero
Fare
Se valore / i = Int(valore / i) Allora
BilPrima = Falso
Finisci se
io = io + 1
Loop While i < valore e NumberPrima = True
Fine funzione
Guarda di nuovo gli elementi:
DO codice LOOP WHILE/UNTIL condizione
Fattoriale della funzione pubblica (valore come intero) As Long
Dim risultati quanto più a lungo
Dim i As Integer
Se valore = 0 Allora
risultato = 1
ElseIf valore = 1 Allora
risultato = 1
Altro
risultato = 1
Per i = 1 Al valore
risultato= risultato * i
Prossimo
Finisci se
Fattoriale = risultato
Fine funzione
Guarda di nuovo gli elementi:
FOR variabile = limite inferiore TO limite superiore del codice NEXT
. Si noti inoltre l'elemento ElseIf aggiuntivo nell'istruzione If, che consente di aggiungere più opzioni al codice in esecuzione. Infine, considera la funzione e la variabile "risultato" dichiarate come Long. Il tipo di dati Long consente valori molto più grandi di Integer.
Di seguito è mostrato il codice di una funzione che converte piccoli numeri in parole.
Passaggio 6. Tornare alla cartella di lavoro e utilizzare la funzione scrivendo il simbolo "uguale" (=) seguito dal nome della funzione nella cella
Scrivi le parentesi aperte (“(“) dopo il nome della funzione, usando il segno coma per separare i parametri e terminare con le parentesi quadre (“)”). Come esempio:
=NumeroALettera(A4)
. Puoi anche usare le formule fatte in casa cercandole nelle categorie Definito dall'utente all'interno dell'opzione Inserisci formula. Basta fare clic sul pulsante Fx a sinistra della barra della formula. Esistono tre tipi di moduli di parametro nelle funzioni: