Excel VBA Intersect

VBA Se intersectează în matematică sau în geometrie înseamnă când două sau mai multe linii sau o zonă se încrucișează între ele. Punctul comun sau zona creată după aceea se numește punct sau zonă de intersecție. În excel, de asemenea, putem evidenția și măsura zona Intersect.

Sintaxa funcției intersectate în Excel VBA

Funcția intersectare are următoarea sintaxă în Excel VBA:

După cum putem vedea, Arg1 și Arg2 sunt menționate, Range. Și restul argumentelor sunt între paranteze. Ceea ce înseamnă că primele două argumente trebuie selectate ca rază. Sau cu alte cuvinte, trebuie să fie incluse minimum 2 zone pentru găsirea intersectiei. Restul argumentelor poate fi selectat ca rază sau poate include alte lucruri sau parametri, precum și după necesitate. Această sintaxă poate găzdui maximum 30 de argumente.

Cum să utilizați funcția de intersecție Excel VBA?

Vom învăța cum să utilizăm o funcție VBA Intersect cu câteva exemple în Excel.

Puteți descărca acest șablon Excel VBA Intersect aici - șablonul VBA Intersect Excel

VBA Intersect - Exemplul # 1

În primul exemplu, vom evidenția și crea zona de intersecție atunci când avem un set de date. Pentru aceasta, avem exemple de date care au 3 coloane umplute cu numere așa cum se arată mai jos.

Acum trebuie să găsim zona de intersecție a unui tabel de date de mai sus folosind VBA Intersect. Pentru aceasta, urmați pașii de mai jos:

Pasul 1: Accesați fereastra VBA și deschideți un modul din opțiunea de meniu Insert, așa cum se arată mai jos.

Vom primi o fereastră goală a modulului.

Pasul 2: Acum scrieți subcategoria VBA Intersect sau în orice alt nume, după alegerea dvs.

Cod:

 Sub VBAIntersect1 () End Sub 

Pasul 3: Acum introduceți direct comanda Intersect așa cum se arată mai jos.

Cod:

 Sub VBAIntersect1 () Intersect (End Sub 

Așa cum am explicat deja sintaxa detaliată a Intersect, vom adăuga o zonă de intersecție. Putem alege N număr de intervale, dar trebuie să existe cel puțin două game.

Să luăm în considerare mai jos o zonă de intersecție în care prima zonă este de la A1 la B8, a doua zonă este B3 până la C12, iar a treia zonă este de la A7 la C10. Putem considera și alege orice combinație a unui model de intersecții.

Acum, să vedem în ce punct / aceste zone se întâlnesc și se intersectează între ele. Zona comună creată de toate zonele de mai sus va fi zona noastră de intersecție.

Pasul 4: Acum, în modulul VBA al intersecției, selectați primul interval de zone, așa cum se arată mai jos.

Cod:

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

Am adăugat prima gamă, dar sintaxa noastră este încă incompletă.

Pasul 5: Introduceți în continuare alte două zone despre care am discutat mai sus, separate prin virgule.

Cod:

 Sub VBAIntersect1 () Intersect (Interval ("A1: B8"), Interval ("B3: C12"), Interval ("A7: C10")) 

Pasul 6: dați acum condiția ca „Adevărat”.

Cod:

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

Acest lucru completează codul nostru.

Pasul 7: Acum compilați codul și rulați făcând clic pe butonul Redare, care se află sub bara de meniu, așa cum se arată mai jos.

Vom obține zona comună sau zona intersectată care are valoare ADEVĂRAT după cum se arată mai sus. Deși am obținut zona de intersecție, acel ADEVĂR a înlocuit datele care erau acolo în zona intersectată.

Pasul 8: Acum, pentru a nu pierde acest lucru, putem schimba fundalul culorii, acele celule comune în orice culoare la alegerea noastră. Pentru aceasta, după sintaxa lui Intersect, folosiți funcția Interior împreună cu Color, așa cum se arată mai jos.

Cod:

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

Pasul 9: Acum în VBA, nu putem folosi numele culorii pe care vrem să o utilizăm direct. Pentru aceasta, trebuie să adăugăm „ vb ” care este folosit pentru a activa culorile disponibile în VBA. Acum folosiți-l și adăugați orice nume al culorii dorite. Selectăm Green aici, așa cum se arată mai jos.

Cod:

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

Pasul 10: Acum din nou compilați codul scris dintr-o dată, deoarece codul este destul de mic și executați-l.

Vom vedea că culoarea zonei intersectate este schimbată în Green și zona comună, care este creată de intersecția diferitelor 3 zone din B7 la B8.

VBA Intersect - Exemplul # 2

Există un alt mod, dar cu totul diferit, de a folosi VBA Intersect. De data aceasta folosim intersectarea într-o foaie de lucru specifică. În Foaia 2 am marcat o zonă de la B4 la E8 așa cum se arată mai jos.

Urmați pașii de mai jos:

Pasul 1: În VBA, accesați foaia 2 a cărții de lucru curente, așa cum se arată mai jos.

Pasul 2: Acum selectați foaia de lucru din această primă opțiune derulantă. Acest lucru va permite utilizarea codului numai în această foaie curentă.

Pasul 3: Și din cel de-al doilea drop-down selectați opțiunea Schimbare așa cum se arată mai jos. Aceasta este utilizată pentru a viza modificările efectuate în intervalul selectat.

Pasul 4: Vom scrie codul nostru doar în prima Subcategorie.

Cod:

 Subunitate privată Foaie de lucru_Change (Obiectiv ByVal ca rază) Sub final 

Pasul 5: Vom folosi bucla If-Else pentru formarea unei condiții pentru funcția de intersecție.

Cod:

 Private Sub Foaie de lucru_Change (ByVal Target as Range) If End If End Sub 

Pasul 6: Selectați mai întâi intervalul țintă de la B4 la E8, așa cum se arată mai jos. Acest lucru va viza intersecția zonei acoperite în B4 până la E8 în principal.

Cod:

 Sub Privare Foaie de lucru_Change (ByVal Target As Range) Dacă intersectare (Target, Range ("B4: E8")) End If End Sub 

Pasul 7: Și dacă nu există nimic în zona țintă, atunci trebuie să scriem o declarație care să redirecționeze codul înainte.

Cod:

 Subsol Privat Worksheet_Change (ByVal Target As Range) Dacă Intersect (Target, Range ("B4: E8")) Nu este Nimic atunci End If End End Sub 

Pasul 8: Și dacă ținta este într-adevăr în afara domeniului, putem folosi o casetă de mesaj cu un mesaj de alertă, așa cum se arată mai jos.

Cod:

 Subsol Privat Worksheet_Change (ByVal Target As Range) Dacă Intersect (Target, Range ("B4: E8")) Nu este Nimic Atunci MsgBox "În afara intervalului" End If End End Sub 

Pasul 9: Și în instrucțiunea Else în care se află ceva scris în interiorul casetei, atunci ar trebui să primim un mesaj prompt dacă conținutul scris se află în interiorul casetei, așa cum se arată mai jos.

Cod:

 Private Sub Worksheet_Change (ByVal Target as Range) If Intersect (Target, Range ("B4: E8")) Nu este nimic atunci MsgBox "Out of Range" Altele MsgBox "În intervalul" End If End Sub 

Pasul 10: Compilați acum fiecare pas de cod scris și închideți foaia de lucru a VBA. După cum am scris codul specific foii, acesta va funcționa în același lucru.

Pasul 11: Acum scrie ceva în casetă.

După cum vedem, am scris 2 în celula C5 din caseta am primit mesajul sau „ În raza de acțiune ”.

Pasul 12: Scrieți din nou ceva din cutie. Am scris 1 în celula B10 și am primit mesajul „În afara intervalului” așa cum se arată mai jos.

Acesta este un alt mod de a utiliza Intersect în Excel VBA.

Beneficiile Excel VBA Intersect

  • Este foarte ușor să evidențiezi cel puțin zona care se intersectează prin procesul din exemplul 1.
  • Acest lucru este foarte util atunci când trebuie să filtrăm sau să lucrăm la acest tip de date care se intersectează dintr-o zonă diferită, cum ar fi Datele, Proprietarul etc.

Lucruri de amintit

  • Nu uitați să salvați fișierul în format Macro Enable Excel, astfel încât codul să funcționeze în fiecare utilizare.
  • Scrierea codului în Foaie în loc de modul, după cum se arată în exemplul 2, face ca codul să fie aplicabil numai pentru acea foaie. Codul respectiv nu va funcționa pe nicio altă foaie.
  • Utilizarea intervalului țintă așa cum se arată în exemplul 2 este utilă în specificarea zonei de lovit.

Articole recomandate

Acesta este un ghid pentru VBA Intersect. Aici vom discuta despre cum să folosiți funcția Excel VBA Intersect împreună cu câteva exemple practice și șablonul excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. Exemple pe bucle VBA
  2. Excel COLUMN la număr
  3. VBA Faceți până la Buclă
  4. Creați un buget în Excel

Categorie: