Esistono molti modi per utilizzare le funzioni in VBA. VBA viene caricato con molte funzioni integrate. Puoi persino creare le tue funzioni (UDF). Tuttavia, puoi anche utilizzare molte delle funzioni di Excel in VBA utilizzando Application.WorksheetFunction.
Come utilizzare le funzioni del foglio di lavoro in VBA
Per accedere a una funzione di Excel in VBA, aggiungi Application.WorksheetFunction davanti alla funzione che desideri chiamare. Nell'esempio seguente, chiameremo la funzione Max di Excel:
12 | Dim maxvalue finchémaxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value) |
La sintassi delle funzioni è la stessa, tuttavia inserirai gli argomenti della funzione proprio come faresti con qualsiasi altra funzione VBA.
Si noti che la sintassi della funzione Max appare quando si digita (simile a con le funzioni VBA):
Foglio di lavoro Metodo della funzione
WorksheetFunction è un metodo dell'oggetto Application. Ti consente di accedere a molte (non tutte) delle funzioni standard del foglio di lavoro Excel. In genere, non avrai accesso a nessuna funzione del foglio di lavoro con una versione VBA corrispondente.
Di seguito è possibile visualizzare un elenco di molte delle funzioni del foglio di lavoro più comuni.
Application.WorksheetFunction vs. Application
In realtà ci sono due modi per accedere a queste funzioni:
Application.WorksheetFunction (come visto sopra):
1 | maxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value) |
oppure puoi omettere la funzione Foglio di lavoro
1 | maxvalue = Application.Max(Range("a1").Value, Range("a2").Value) |
Sfortunatamente, l'omissione di WorksheetFunction eliminerà l'Intellisense che visualizza la sintassi (vedi immagine sopra). Tuttavia, ha un grande potenziale vantaggio: Gestione degli errori.
Se usi Application e la tua funzione genera un errore, restituirà il valore di errore. Se usi il metodo WorksheetFunction, VBA genererà un errore di runtime. Naturalmente, puoi gestire l'errore VBA, ma di solito è meglio evitare l'errore in primo luogo.
Diamo un'occhiata a un esempio per vedere la differenza:
Foglio di lavoro VlookupGestione degli errori della funzione
Tenteremo di eseguire un Vlookup che non risulterà in una corrispondenza. Quindi la funzione Vlookup restituirà un errore.
Per prima cosa utilizzeremo il metodo WorksheetFunction. Nota come VBA genera un errore:
Successivamente omettiamo la WorksheetFunction. Notare come
Successivamente ometteremo la funzione Foglio di lavoro. Nota come non viene generato alcun errore e invece la funzione 'value' contiene il valore di errore da Vlookup.
Elenco delle funzioni del foglio di lavoro VBA
Di seguito troverai un elenco della maggior parte delle funzioni comuni del foglio di lavoro VBA.
Funzione | Descrizione |
---|---|
Logico | |
E | Verifica se tutte le condizioni sono soddisfatte. VERO FALSO |
SE | Se la condizione è soddisfatta, fai qualcosa, in caso contrario, fai qualcos'altro. |
SE ERRORE | Se il risultato è un errore, fai qualcos'altro. |
O | Verifica se sono soddisfatte le condizioni. VERO FALSO |
Ricerca e riferimento | |
SCEGLIERE | Sceglie un valore da un elenco in base al suo numero di posizione. |
HLOOKUP | Cerca un valore nella prima riga e restituisci un valore. |
INDICE | Restituisce un valore in base ai suoi numeri di colonna e riga. |
CERCARE | Cerca i valori orizzontalmente o verticalmente. |
INCONTRO | Cerca un valore in un elenco e ne restituisce la posizione. |
TRASPORRE | Inverte l'orientamento di un intervallo di celle. |
CERCA.VERT | Cerca un valore nella prima colonna e restituisci un valore. |
Appuntamento | |
DATA | Restituisce una data da anno, mese e giorno. |
DATAVALORE | Converte una data memorizzata come testo in una data valida |
GIORNO | Restituisce il giorno come numero (1-31). |
GIORNI360 | Restituisce i giorni tra 2 date in un anno di 360 giorni. |
EDATE | Restituisce una data, a n mesi di distanza da una data di inizio. |
EOMESE | Restituisce l'ultimo giorno del mese, la data di distanza di n mesi. |
ORA | Restituisce l'ora come numero (0-23). |
MINUTO | Restituisce il minuto come numero (0-59). |
MESE | Restituisce il mese come numero (1-12). |
GIORNI LAVORATIVI | Numero di giorni lavorativi tra 2 date. |
GIORNI.LAVORATIVI.INTL | Giorni lavorativi tra 2 date, fine settimana personalizzati. |
ORA | Restituisce la data e l'ora correnti. |
SECONDO | Restituisce il secondo come numero (0-59) |
TEMPO | Restituisce il tempo tra un'ora, un minuto e un secondo. |
TIMEVALUE | Converte un'ora memorizzata come testo in un'ora valida. |
GIORNO SETTIMANALE | Restituisce il giorno della settimana come numero (1-7). |
NUM.SETTIMANA | Restituisce il numero della settimana in un anno (1-52). |
GIORNATA DI LAVORO | La data n giorni lavorativi da una data. |
ANNO | Restituisce l'anno. |
YEARFRAC | Restituisce la frazione di anno tra 2 date. |
Ingegneria | |
CONVERTIRE | Converti il numero da un'unità all'altra. |
Finanziario | |
FV | Calcola il valore futuro. |
PV | Calcola il valore attuale. |
NPER | Calcola il numero totale di periodi di pagamento. |
PMT | Calcola l'importo del pagamento. |
VOTA | Calcola il tasso di interesse. |
VAN | Calcola il valore attuale netto. |
IRR | Il tasso di rendimento interno per un insieme di CF periodici. |
XIRR | Il tasso di rendimento interno per un insieme di CF non periodici. |
PREZZO | Calcola il prezzo di un'obbligazione. |
INTRATE | Il tasso di interesse di un titolo completamente investito. |
Informazione | |
ISERR | Verifica se il valore della cella è un errore, ignora #N/A. VERO FALSO |
ISERROR | Verifica se il valore della cella è un errore. VERO FALSO |
È ANCHE | Verifica se il valore della cella è pari. VERO FALSO |
ISLOGICO | Verifica se la cella è logica (VERO o FALSO). VERO FALSO |
ISNA | Verifica se il valore della cella è #N/A. VERO FALSO |
ISNOTESTO | Verifica se la cella non è testo (le celle vuote non sono testo). VERO FALSO |
ISNUMBER | Verifica se la cella è un numero. VERO FALSO |
ISODD | Verifica se il valore della cella è dispari. VERO FALSO |
ISTEXT | Verifica se la cella è testo. VERO FALSO |
GENERE | Restituisce il tipo di valore in una cella. |
Matematica | |
addominali | Calcola il valore assoluto di un numero. |
AGGREGATO | Definire ed eseguire calcoli per un database o un elenco. |
SOFFITTO | Arrotonda un numero per eccesso al multiplo specificato più vicino. |
COS | Restituisce il coseno di un angolo. |
GRADI | Converte i radianti in gradi. |
DSUM | Somma i record del database che soddisfano determinati criteri. |
ANCHE | Arrotonda all'intero pari più vicino. |
EXP | Calcola il valore esponenziale per un dato numero. |
FATTO | Restituisce il fattoriale. |
PAVIMENTO | Arrotonda un numero per difetto, al multiplo specificato più vicino. |
GCD | Restituisce il massimo comun divisore. |
INT | Arrotonda un numero per difetto all'intero più vicino. |
LCM | Restituisce il minimo comune multiplo. |
LN | Restituisce il logaritmo naturale di un numero. |
TRONCO D'ALBERO | Restituisce il logaritmo di un numero su una base specificata. |
LOG10 | Restituisce il logaritmo in base 10 di un numero. |
MERENDA | Arrotonda un numero a un multiplo specificato. |
STRANO | Arrotonda all'intero dispari più vicino. |
PI | Il valore di PI. |
POTENZA | Calcola un numero elevato a potenza. |
PRODOTTO | Moltiplica un array di numeri. |
QUOZIENTE | Restituisce il risultato intero della divisione. |
RADIANTI | Converte un angolo in radianti. |
CASUALE TRA | Calcola un numero casuale tra due numeri. |
IL GIRO | Arrotonda un numero a un numero di cifre specificato. |
ROUNDDOWN | Arrotonda un numero per difetto (verso lo zero). |
ARROTONDARE | Arrotonda un numero per eccesso (lontano da zero). |
PECCATO | Restituisce il seno di un angolo. |
TOTALE PARZIALE | Restituisce una statistica di riepilogo per una serie di dati. |
SOMMA | Somma i numeri insieme. |
SUMIF | Somma i numeri che soddisfano un criterio. |
SUMIF | Somma i numeri che soddisfano più criteri. |
SUMPRODOTTO | Moltiplica gli array di numeri e somma l'array risultante. |
TAN | Restituisce la tangente di un angolo. |
Statistiche | |
MEDIA | Numeri medi. |
MEDIA SE | Numeri medi che soddisfano un criterio. |
MEDIE | Numeri medi che soddisfano più criteri. |
CORRELAZIONE | Calcola la correlazione di due serie. |
CONTARE | Conta le celle che contengono un numero. |
CONTA | Conta le celle che non sono vuote. |
CONTA.VUOTE | Conta le celle vuote. |
CONTA.SE | Conta le celle che soddisfano un criterio. |
COUNTIFS | Conta le celle che soddisfano più criteri. |
PREVISIONE | Prevedi i futuri valori y dalla linea di tendenza lineare. |
FREQUENZA | Conta i valori che rientrano negli intervalli specificati. |
CRESCITA | Calcola i valori Y in base alla crescita esponenziale. |
INTERCETTARE | Calcola l'intercetta Y per una linea best-fit. |
GRANDE | Restituisce il k-esimo valore più grande. |
LINEST | Restituisce le statistiche su una linea di tendenza. |
MAX | Restituisce il numero più grande. |
MEDIANO | Restituisce il numero mediano. |
MIN | Restituisce il numero più piccolo. |
MODALITÀ | Restituisce il numero più comune. |
PERCENTILE | Restituisce il k-esimo percentile. |
PERCENTILE.INC | Restituisce il k-esimo percentile. Dove k è compreso. |
PERCENTILE.EXC | Restituisce il k-esimo percentile. Dove k è esclusivo. |
QUARTILE | Restituisce il valore del quartile specificato. |
QUARTILE.INC | Restituisce il valore del quartile specificato. Inclusivo. |
QUARTILE.EXC | Restituisce il valore del quartile specificato. Esclusivo. |
CLASSIFICA | Rango di un numero all'interno di una serie. |
RANK.AVG | Rango di un numero all'interno di una serie. Medie. |
RANK.EQ | Rango di un numero all'interno di una serie. Classifica superiore. |
PENDENZA | Calcola la pendenza dalla regressione lineare. |
PICCOLO | Restituisce il k-esimo valore più piccolo. |
STDEV | Calcola la deviazione standard. |
STDEV.P | Calcola la DS di un'intera popolazione. |
STDEV.S | Calcola la SD di un campione. |
STDEVP | Calcola la DS di un'intera popolazione |
TENDENZA | Calcola i valori Y in base a una linea di tendenza. |
Testo | |
PULIRE | Rimuove tutti i caratteri non stampabili. |
DOLLARO | Converte un numero in testo in formato valuta. |
TROVA | Individua la posizione del testo all'interno di una cella. Maiuscole/minuscole. |
SINISTRA | Tronca il testo di un numero di caratteri da sinistra. |
LEN | Conta il numero di caratteri nel testo. |
MID | Estrae il testo dal centro di una cella. |
CORRETTO | Converte il testo in maiuscolo. |
SOSTITUIRE | Sostituisce il testo in base alla sua posizione. |
REPT | Ripete il testo un numero di volte. |
GIUSTO | Tronca il testo di un numero di caratteri da destra. |
RICERCA | Individua la posizione del testo all'interno di una cella. Non distingue tra maiuscole e minuscole. |
SOSTITUTO | Trova e sostituisce il testo. Che tiene conto del maiuscolo o minuscolo. |
TESTO | Converte un valore in testo con un formato numerico specifico. |
ORDINARE | Rimuove tutti gli spazi extra dal testo. |