Excel VBA Intersect

Interseca VBA in matematica o in geometria significa quando due o più linee o aree si incrociano. Il punto o l'area comune creato successivamente si chiama punto o area di intersezione. In Excel possiamo anche evidenziare e misurare l'area Intersect.

Sintassi della funzione di intersezione in Excel VBA

La funzione di intersezione ha la sintassi seguente in Excel VBA:

Come possiamo vedere, Arg1 e Arg2 sono menzionati, Range. E il resto degli argomenti sono tra parentesi. Ciò significa che i primi due argomenti devono essere selezionati come intervallo. O in altre parole, devono essere incluse almeno 2 aree per trovare Intersect. Il resto degli argomenti può essere selezionato come Intervallo oppure può includere altre cose o parametri oltre che per necessità. Questa sintassi può contenere un massimo di 30 argomenti.

Come utilizzare la funzione di intersezione VBA di Excel?

Impareremo come utilizzare una funzione VBA Intersect con alcuni esempi in Excel.

Puoi scaricare questo modello di Excel intersecare VBA qui - Modello di Excel intersecare VBA

VBA Intersect - Esempio n. 1

Nel primo esempio, evidenzieremo e creeremo l'area di intersezione quando avremo un set di dati. Per questo, abbiamo dati di esempio che ha 3 colonne piene di numeri, come mostrato di seguito.

Ora dobbiamo trovare l'area di intersezione di una tabella di dati sopra usando VBA Intersect. Per questo, seguire i passaggi seguenti:

Passaggio 1: vai alla finestra VBA e apri un modulo dall'opzione di menu Inserisci come mostrato di seguito.

Otterremo una finestra vuota del modulo.

Passo 2: Ora scrivi la sottocategoria di VBA Intersect o con qualsiasi altro nome secondo la tua scelta.

Codice:

 Sub VBAIntersect1 () End Sub 

Passaggio 3: ora inserire direttamente il comando Intersect come mostrato di seguito.

Codice:

 Sub VBAIntersect1 () Intersect (End Sub 

Come abbiamo già spiegato la sintassi dettagliata di Intersect, aggiungeremo un'area di intersezione. Possiamo scegliere il numero N di intervalli, ma dovrebbero esserci almeno due intervalli.

Consideriamo di seguito un'area di intersezione in cui la prima area va da A1 a B8, la seconda area è da B3 a C12 e la terza area è da A7 a C10. Possiamo considerare e scegliere qualsiasi combinazione di un modello di intersezioni.

Ora vediamo in quale punto / i queste aree si incontrano e si intersecano. L'area comune creata da tutte le aree sopra sarà la nostra area di intersezione.

Passo 4: Ora nel modulo VBA di Intersect, seleziona il primo intervallo di area come mostrato di seguito.

Codice:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8") End Sub 

Abbiamo aggiunto il primo intervallo, ma la nostra sintassi è ancora incompleta.

Passaggio 5: ora inserire ulteriormente le altre due aree di cui abbiamo discusso in precedenza separate da virgole.

Codice:

 Sotto VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")) End Sub 

Passaggio 6: ora fornire la condizione come "True".

Codice:

 Sottotitolo VBAIntersect1 () (intervallo ("A1: B8"), intervallo ("B3: C12"), intervallo ("A7: C10")) = True End 

Questo completa il nostro codice.

Passo 7: Ora compila il codice ed eseguilo facendo clic sul pulsante Riproduci che si trova sotto la barra dei menu come mostrato di seguito.

Otterremo l'area comune o l'area intersecata che ha valore TRUE come mostrato sopra. Sebbene abbiamo ottenuto l'area dell'intersezione, quel VERO ha sostituito i dati che erano lì nell'area intersecata.

Step 8: Ora per evitare di perdere questo, possiamo cambiare lo sfondo del colore, quelle celle comuni con qualsiasi colore di nostra scelta. Per questo dopo la sintassi di Intersect usa la funzione Interior insieme a Color come mostrato di seguito.

Codice:

 Sotto VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")). Interior.Color = End Sub 

Passaggio 9: Ora in VBA, non possiamo usare il nome del colore che vogliamo usare direttamente. Per questo, dobbiamo aggiungere " vb " che viene utilizzato per attivare i colori disponibili in VBA. Ora usalo e aggiungi qualsiasi nome del colore che preferisci. Stiamo selezionando verde qui come mostrato di seguito.

Codice:

 Sotto VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")). Interior.Color = vbGreen Sottotitoli 

Passo 10: Ora compila nuovamente il codice scritto in una volta sola poiché il codice è piuttosto piccolo ed eseguilo.

Vedremo che il colore dell'area intersecata viene cambiato in Verde e l'area comune che viene creata dall'intersezione di 3 diverse aree da B7 a B8.

VBA Intersect - Esempio n. 2

Esiste un altro ma un modo completamente diverso di utilizzare VBA Intersect. Questa volta usiamo intersecare in un foglio di lavoro specifico. Nel foglio 2 abbiamo segnato un'area da B4 a E8 come mostrato di seguito.

Segui i passaggi seguenti:

Passaggio 1: in VBA, vai a Sheet2 della cartella di lavoro corrente come mostrato di seguito.

Passaggio 2: ora seleziona il foglio di lavoro da questa prima opzione a discesa. Ciò consentirà di utilizzare il codice solo in questo foglio corrente.

Passaggio 3: E dal secondo menu a discesa selezionare l'opzione Cambia come mostrato di seguito. Viene utilizzato per indirizzare le modifiche apportate nell'intervallo selezionato.

Passaggio 4: scriveremo il nostro codice solo nella prima sottocategoria.

Codice:

 Private Sub Worksheet_Change (ByVal Target As Range) End Sub 

Passaggio 5: useremo il ciclo If-Else per formare una condizione per la funzione interseca.

Codice:

 Private Sub Worksheet_Change (Target ByVal come intervallo) Se End Se End Sub 

Passaggio 6: selezionare innanzitutto l'intervallo target da B4 a E8 come mostrato di seguito. Questo mirerà principalmente all'intersezione dell'area coperta da B4 a E8.

Codice:

 Private Sub Worksheet_Change (ByVal Target As Range) Se Intersect (Target, Range ("B4: E8")) End If End Sub 

Passo 7: E se non c'è nulla nell'area di destinazione, allora dobbiamo scrivere un'istruzione che reindirizzerà il codice in anticipo.

Codice:

 Private Sub Worksheet_Change (ByVal Target As Range) Se Intersect (Target, Range ("B4: E8")) è nulla, allora End If End Sub 

Passaggio 8: e se davvero l'obiettivo non è compreso nell'intervallo, è possibile utilizzare una finestra di messaggio con un messaggio di avviso, come mostrato di seguito.

Codice:

 Private Sub Worksheet_Change (ByVal Target As Range) Se Intersect (Target, Range ("B4: E8")) non è niente, allora MsgBox "Out of Range" End If End Sub 

Passaggio 9: E nell'istruzione Else in cui qualcosa è scritto all'interno della scatola, dovremmo ricevere un messaggio rapido se il contenuto scritto è all'interno della scatola come mostrato di seguito.

Codice:

 Private Sub Worksheet_Change (ByVal Target As Range) Se Intersect (Target, Range ("B4: E8")) non è niente, allora MsgBox "Out of Range" Else MsgBox "Within Range" End If End Sub 

Passaggio 10: compilare ora ogni passaggio del codice scritto e chiudere il foglio di lavoro di VBA. Come abbiamo scritto il codice specifico per il foglio, allora funzionerà nello stesso.

Passaggio 11: ora scrivi qualcosa nella casella.

Come possiamo vedere, abbiamo scritto 2 nella cella C5 all'interno della scatola, abbiamo ricevuto il messaggio o " Within Range ".

Passaggio 12: scrivere nuovamente qualcosa fuori dalla scatola. Abbiamo scritto 1 nella cella B10 e abbiamo ricevuto il messaggio "Fuori portata" come mostrato di seguito.

Questo è un altro modo di usare Intersect in Excel VBA.

Pro di Excel VBA Intersect

  • È molto facile evidenziare almeno l'area che si interseca con il processo dell'esempio-1.
  • Questo è molto utile laddove è necessario filtrare o lavorare su quel tipo di dati con intersezione da un'area diversa come Date, Proprietario, ecc.

Cose da ricordare

  • Ricorda di salvare il file in formato Macro Abilita Excel, in modo che il codice funzioni in ogni uso.
  • Scrivere il codice nel foglio anziché nel modulo come mostrato nell'esempio 2, rendere il codice applicabile solo per quel foglio. Quel codice non funzionerà su nessun altro foglio.
  • L'uso di Target Range come mostrato nell'esempio-2 è utile per specificare l'area da colpire.

Articoli consigliati

Questa è una guida a VBA Intersect. Qui discutiamo come utilizzare la funzione di intersezione VBA di Excel insieme ad alcuni esempi pratici e modello Excel scaricabile. Puoi anche consultare i nostri altri articoli suggeriti:

  1. Esempi su loop VBA
  2. Excel COLONNA a Numero
  3. VBA Do Until Loop
  4. Crea un budget in Excel

Categoria: