Excel VBA Intersect

VBA Пресичат се в математиката или в геометрията означава, когато две или повече линии или област се пресичат взаимно. Общата точка или зона, създадена след това, се нарича точка на пресичане или зона. Освен това можем да подчертаем и измерим зоната на пресичане.

Синтаксис на функция „Пресичане“ в Excel VBA

Функцията Intersect има следния синтаксис в Excel VBA:

Както виждаме, споменават се Arg1 и Arg2, Range. А останалата част от аргументите са в скоби. Което означава, че първите два аргумента трябва да бъдат избрани като Range. Или с други думи, трябва да бъдат включени минимум 2 области за намиране на пресечка. Останалата част от аргументите може да бъде избрана като Range или може да включва някои други неща или параметри, както и при нужда. Този синтаксис може да побере максимум 30 аргумента.

Как да използвате Excel VBA Intersect функция?

Ще научим как да използваме функция VBA Intersect с няколко примера в Excel.

Можете да изтеглите този VBA Intersect Excel шаблон тук - VBA Intersect Excel шаблон

VBA Intersect - Пример №1

В първия пример ще подчертаем и създадем зона „Пресечка“, когато имаме някакъв набор от данни. За това имаме примерни данни, които имат 3 колони, пълни с числа, както е показано по-долу.

Сега трябва да намерим областта на пресичане на горната таблица с данни, използвайки VBA Intersect. За това следвайте стъпките по-долу:

Стъпка 1: Отидете до прозореца на VBA и отворете модул от опцията за меню Вмъкване, както е показано по-долу.

Ще получим празен прозорец на модула.

Стъпка 2: Сега напишете подкатегория на VBA Intersect или в друго име според вашия избор.

Код:

 Sub VBAIntersect1 () Край Sub 

Стъпка 3: Сега директно вмъкнете командата Intersect, както е показано по-долу.

Код:

 Sub VBAIntersect1 () Пресича се (Край Sub 

Както вече обяснихме подробния синтаксис на Intersect, ще добавим област на пресичане. Можем да изберем N брой диапазони, но трябва да има минимум два диапазона.

Нека разгледаме по-долу зона на пресичане, където първата зона е от А1 до В8, втората е от В3 до С12, а третата е от А7 до С10. Можем да разгледаме и да изберем всяка комбинация от модел на пресичане.

Сега нека да видим в каква точка (и) тези области се срещат и се пресичат. Общата зона, създадена от всички горепосочени области, ще бъде нашата зона на пресичане.

Стъпка 4: Сега в VBA модула на Intersect, изберете първия диапазон на площта, както е показано по-долу.

Код:

 Sub VBAIntersect1 () Пресечете се (диапазон ("A1: B8") Край Sub 

Добавихме първия диапазон, но синтаксисът ни все още е непълен.

Стъпка 5: Сега допълнително вмъкнете останалата част от две области, които разгледахме по-горе, разделени със запетаи.

Код:

 Под VBAIntersect1 () Пресечете се (обхват ("A1: B8"), обхват ("B3: C12"), обхват ("A7: C10")) Край Sub 

Стъпка 6: Сега дайте условието като „Вярно“.

Код:

 Sub VBAIntersect1 () Пресича се (обхват ("A1: B8"), обхват ("B3: C12"), обхват ("A7: C10")) = True End Sub 

Това допълва нашия код.

Стъпка 7: Сега компилирайте кода и стартирайте, като кликнете върху бутона Възпроизвеждане, който се намира под лентата на менюто, както е показано по-долу.

Ще получим общата зона или пресечената област, която има стойност ИСТИНСКА, както е показано по-горе. Въпреки че получихме пресечната зона, TRUE замести данните, които бяха там в пресечената зона.

Стъпка 8: Сега, за да не загубим това, можем да променим цвета на фона, тези общи клетки към всеки цвят по наш избор. За това след синтаксиса на Intersect използвайте функцията "Интериор" заедно с цвета, както е показано по-долу.

Код:

 Sub VBAIntersect1 () Пресича се (обхват ("A1: B8"), обхват ("B3: C12"), обхват ("A7: C10")). 

Стъпка 9: Сега във VBA не можем да използваме името на цвета, който искаме да използваме директно. За това трябва да добавим „ vb “, който се използва за активиране на цветовете, налични в VBA. Сега го използвайте и добавете всяко име на цвета по ваш избор. Тук избираме Зелено, както е показано по-долу.

Код:

 Под VBAIntersect1 () Пресича се (обхват ("A1: B8"), обхват ("B3: C12"), обхват ("A7: C10")). 

Стъпка 10: Сега отново компилирайте написания код с едно движение, тъй като кодът е доста малък и го стартирайте.

Ще видим, че цветът на пресечената зона е променен на Зелен и обща площ, която се създава от пресичането на различни 3 зони в B7 до B8.

VBA Intersect - Пример №2

Има още един, но доста различен начин за използване на VBA Intersect. Този път използваме пресичане в конкретен работен лист. В Sheet2 сме маркирали зона от B4 до E8, както е показано по-долу.

Изпълнете следните стъпки:

Стъпка 1: В VBA отидете на Sheet2 на текущата работна книга, както е показано по-долу.

Стъпка 2: Сега изберете работния лист от тази първа падаща опция. Това ще позволи кода да се използва само в този текущ лист.

Стъпка 3: И от второто падащо меню изберете опцията Промяна, както е показано по-долу. Използва се за насочване към промените, извършени в избрания диапазон.

Стъпка 4: Ще напишем кода си само в първата подкатегория.

Код:

 Частен под работен лист_Промяна (ByVal Target As Range) Край Sub 

Стъпка 5: Ще използваме контура If-Else за формиране на условие за функция за пресичане.

Код:

 Private Sub Worksheet_Change (ByVal Target As Range) If End If End Sub 

Стъпка 6: Първо изберете целевия диапазон от B4 до E8, както е показано по-долу. Това ще бъде насочено основно към пресичане на зоната, покрита главно в B4 до E8.

Код:

 Private Sub Worksheet_Change (ByVal Target As Range) Ако се пресича (Target, Range ("B4: E8")) End If End Sub 

Стъпка 7: И ако няма нищо в целевата област, тогава трябва да напишем изявление, което ще пренасочи кода напред.

Код:

 Private Sub Worksheet_Change (ByVal Target As Range) Ако Intersect (Цел, диапазон ("B4: E8")) е нищо, тогава End End End End Sub 

Стъпка 8: И ако наистина целта е извън обхвата, можем да използваме кутия със съобщение за предупреждение, както е показано по-долу.

Код:

 Private Sub Worksheet_Change (ByVal Target As Range) Ако Intersect (Target, Range ("B4: E8")) е нищо, тогава MsgBox "Out of Range" End If End Sub 

Стъпка 9: И в израза Else, когато нещо написано в полето, тогава трябва да получим бързо съобщение, ако написаното съдържание е вътре в полето, както е показано по-долу.

Код:

 Private Sub Worksheet_Change (ByVal Target As Range) Ако Intersect (Target, Range ("B4: E8")) е нищо, тогава MsgBox "Out of Range" Else MsgBox "в рамките на обхвата" End If End Sub 

Стъпка 10: Сега компилирайте всяка стъпка от написан код и затворете работния лист на VBA. Както сме написали кода, специфичен за листа, той ще работи в същия.

Стъпка 11: Сега напишете нещо в кутията.

Както виждаме, написахме 2 в клетка C5 вътре в кутията, получихме съобщението или „ В рамките на обхвата “.

Стъпка 12: Отново напишете нещо от кутията. Написахме 1 в клетка B10 и получихме съобщението на „Извън обхват“, както е показано по-долу.

Това е друг начин за използване на Intersect в Excel VBA.

Плюсове на Excel VBA Intersect

  • Много е лесно да се подчертае поне областта, която се пресича чрез процеса от пример-1.
  • Това е много полезно, когато трябва да филтрираме или работим върху този вид данни, които имат пресичане от различна област като дати, собственик и т.н.

Неща, които трябва да запомните

  • Не забравяйте да запазите файла във формат Macro Enable Excel, така че кодът да функционира при всяка употреба.
  • Кодът за писане в Sheet вместо модула, както е показано в пример-2, направи кода приложим само за този лист. Този код няма да работи на всеки друг лист.
  • Използването на целевия диапазон, както е показано в пример-2, е полезно при определяне на района, който трябва да се удари.

Препоръчителни статии

Това е ръководство за VBA Intersect. Тук обсъждаме как да използвате Excel VBA Intersect функция, заедно с някои практически примери и изтеглящ се шаблон на excel. Можете да разгледате и другите ни предложени статии -

  1. Примери за VBA контури
  2. Excel COLUMN на номер
  3. VBA "До цикъл"
  4. Създайте бюджет в Excel

Категория: