Excel VBA oggetto Application
La madre di tutti gli oggetti è Excel stesso. Noi lo chiamiamo l’oggetto Application. L’oggetto applicazione dà accesso a un sacco di opzioni correlate Excel.
WorksheetFunction
È possibile utilizzare la proprietà WorksheetFunction in Excel VBA per accedere alle funzioni di Excel.
-
Ad esempio, inserire un link
: / VBA-Create-a-macro # Comando-tasto [pulsante di comando]
nel foglio di lavoro e aggiungere la seguente riga di codice:
Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))
Quando si fa clic sul pulsante di comando del foglio di lavoro, Excel VBA calcola la media dei valori nella cella A1 e la cella A2 e colloca il risultato nella cella A3.
Nota: invece di Application.WorksheetFunction.Average, è sufficiente utilizzare WorksheetFunction.Average. Se si guarda la barra della formula, si può vedere che la formula in sé non è inserita nella cella A3. Per inserire la formula stessa nella cella A3, utilizzare la seguente riga di codice:
Range("A3").Value = "=AVERAGE(A1:A2)"
ScreenUpdating
A volte può risultare utile disabilitare l’aggiornamento dello schermo (per evitare lo sfarfallio) durante l’esecuzione del codice. Di conseguenza, il codice verrà eseguito più velocemente.
-
Ad esempio, inserire un link
: / VBA-Create-a-macro # Comando-tasto [pulsante di comando]
nel foglio di lavoro e aggiungere le seguenti righe di codice:
Dim i As Integer For i = 1 To 10000 Range("A1").Value = i Next i
Quando si fa clic sul pulsante di comando del foglio di lavoro, Excel VBA visualizza ogni valore di una piccola frazione di secondo e questo può richiedere un certo tempo.
-
Per accelerare il processo, aggiornare il codice come segue.
Dim i As Integer Application.ScreenUpdating = False For i = 1 To 10000 Range("A1").Value = i Next i Application.ScreenUpdating = True
Di conseguenza, il codice verrà eseguito molto più velocemente e si vedrà solo il risultato finale (10000).
DisplayAlerts
È possibile indicare Excel VBA non avvisi di visualizzazione durante l’esecuzione del codice.
-
Ad esempio, inserire un link
: / VBA-Create-a-macro # Comando-tasto [pulsante di comando]
nel foglio di lavoro e aggiungere la seguente riga di codice:
ActiveWorkbook.Close
Quando si fa clic sul pulsante di comando del foglio di lavoro, Excel VBA chiude il file di Excel e chiede di salvare le modifiche apportate.
-
di incaricare Excel VBA di non rendere pubbliche questo avviso durante l’esecuzione di codice, aggiornare il codice come segue.
Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True
Di conseguenza, Excel VBA chiude il file di Excel, senza chiedere di salvare le modifiche apportate. Tutte le modifiche vengono perse.
Calcolo
Per impostazione predefinita, il calcolo è impostato su automatico. Di conseguenza, Excel ricalcola la cartella di lavoro automaticamente ogni volta che un valore che colpisce una formula modifiche. Se la cartella di lavoro contiene molte formule complesse, è possibile accelerare la macro impostando calcolo manuale.
-
Ad esempio, inserire un link
: / VBA-Create-a-macro # Comando-tasto [pulsante di comando]
nel foglio di lavoro e aggiungere la seguente riga di codice:
Application.Calculation = xlCalculationManual
Quando si fa clic sul pulsante di comando del foglio di lavoro, Excel VBA imposta calcolo manuale.
-
È possibile verificare questo facendo clic su File, Opzioni, formule.
-
Ora, quando si modifica il valore di cella A1, il valore della cella B1 non è ricalcolato.
È possibile ricalcolare manualmente la cartella di lavoro premendo F9.
-
Nella maggior parte delle situazioni, si imposterà il calcolo in automatico di nuovo alla fine del codice. Basta aggiungere la seguente riga di codice per raggiungere questo obiettivo.
Application.Calculation = xlCalculationAutomatic