Esegui macro se vengono apportate modifiche al foglio nell'intervallo specificato

Sommario:

Anonim

Durante le tue pratiche VBA, avresti la necessità di eseguire macro quando un determinato intervallo o cella cambia. In tal caso, per eseguire macro quando viene apportata una modifica a un intervallo di destinazione, utilizziamo l'evento di modifica. Gli eventi in VBA ci consentono di eseguire le macro quando si verifica un determinato evento.

Evento di modifica dell'intervallo della sintassi VBA

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("your_range")) Is Nothing Quindi chiama your_macro End If End Sub

L'evento non funziona nei moduli. Devi scriverli in oggetti (foglio di lavoro, grafici, cartella di lavoro).

Abbiamo un esempio per imparare come eseguire una macro quando viene apportata una modifica in un intervallo specificato.

Esempio: eseguire una macro VBA quando viene apportata una modifica nell'intervallo A2: A100

Innanzitutto, scegliamo il foglio su cui si verificherà l'evento. Fai doppio clic su quel foglio nell'editor VBA e copia sotto il codice o il codice generico sopra e apporta le modifiche secondo le tue esigenze.

In questo esempio, voglio eseguire un codice macro/VBA quando viene apportata una modifica nell'intervallo A2: A100 sul foglio 2. Per farlo, faccio doppio clic su foglio2 in Esplora progetti. Apre la pagina di codifica per quel foglio. Puoi fare clic con il pulsante destro del mouse sul foglio e fare clic sul codice della vista per fare lo stesso.

Devo usare l'evento di modifica. Per questo, usiamo la subroutine predefinita Worksheet_Change (ByVal Target As Range). Si attiva quando viene apportata una modifica specifica. Quindi il nostro codice è questo:

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2:A100")) Is Nothing Then Call TestEvent End If End Sub 

Quando apporti modifiche nell'intervallo A2: A100 su Foglio2, verrà chiamata la subroutine TestEvent, come puoi vedere nella gif sopra.

Il TestEvent è la subroutine pubblica in module2. Viene semplicemente visualizzato un messaggio che l'evento sta funzionando.

Sub TestEvent() MsgBox "L'evento sta funzionando!" Fine sottotitolo 

Come funziona?

Abbiamo posto una condizione:

If Not Intersect(Target, Range("A2:A100")) non è niente allora

Qui Intersect(Target, Range("A2:A100")) Is Nothing restituisce True se non vengono apportate modifiche all'intervallo A2:A100. Mettiamo un operatore Not prima di questa istruzione che inverte l'output fornito da "Intersect(Target, Range("A2:A100"))". Quindi, se non viene apportata alcuna modifica nell'intervallo A2:A100, l'espressione restituisce Falls e il sub TestEvent non riceve la chiamata. Se si apporta una modifica a qualsiasi cella nell'intervallo A2:A100, l'espressione restituirà True e l'evento si verificherà. Ed è quello che sta succedendo qui.

Nota: Puoi inserire qualsiasi subroutine in questo blocco. Può provenire da qualsiasi modulo. Ma dovrebbe essere una subroutine pubblica. È possibile impostare l'intervallo in qualsiasi misura. L'intero foglio è il limite.

Quindi sì ragazzi, ecco come chiamare una subroutine o eseguire un codice macro/VBA quando viene apportata una modifica in un intervallo specificato. Era un esempio di evento di base. Questo evento si attiverà solo quando la modifica è basata su testo. Per testuale intendo se scrivi qualcosa nelle celle o elimini, l'evento si attiverà. Se modifichi la formattazione delle celle, non si attiverà. Ci sono altri metodi per farlo.

Spero sia stato utile. Se hai domande relative a questo argomento VBA o qualsiasi altro argomento relativo a Excel, fammi sapere la sezione commenti qui sotto. E dai un'occhiata ai nostri altri post correlati e popolari menzionati di seguito.

Esegui macro quando vengono apportate modifiche al foglio| Quindi, per eseguire la tua macro ogni volta che il foglio si aggiorna, utilizziamo gli eventi del foglio di lavoro di VBA.

Il codice VBA più semplice per evidenziare la riga e la colonna correnti utilizzando| Usa questo piccolo frammento VBA per evidenziare la riga e la colonna correnti del foglio.

Gli eventi del foglio di lavoro in Excel VBA| L'evento del foglio di lavoro è davvero utile quando si desidera che le macro vengano eseguite quando si verifica un evento specificato sul foglio.

Articoli popolari:

50 scorciatoie di Excel per aumentare la produttività | Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.

La funzione CERCA.VERT in Excel | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare il valore da diversi intervalli e fogli.

CONTA.SE in Excel 2016 | Conta i valori con le condizioni usando questa fantastica funzione. Non è necessario filtrare i dati per contare un valore specifico. La funzione Countif è essenziale per preparare la tua dashboard.

Come utilizzare la funzione SOMMA.SE in Excel | Questa è un'altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.