Excel VBA Intersect

VBA Перетинаються в математиці або в геометрії означає, коли дві або більше ліній чи площі перетинаються одна з одною. Загальна точка або область, створена після цього, називається точкою перетину або областю. Крім того, ми можемо виділити та виміряти площу Перехрестя.

Синтаксис функції пересічення в Excel VBA

Функція пересічення має такий синтаксис у Excel VBA:

Як ми бачимо, згадуються Arg1 і Arg2, діапазон. А решта аргументів - у дужках. Що означає, що перші два аргументи повинні бути обрані як діапазон. Або іншими словами, для знаходження перехрестя необхідно включити мінімум 2 області. Залишок аргументів може бути обраний як діапазон, або він може включати деякі інші речі або параметри, а також за потреби. Цей синтаксис може містити максимум 30 аргументів.

Як використовувати функцію перетину Excel VBA?

Ми дізнаємось, як використовувати функцію VBA Intersect з кількома прикладами в Excel.

Ви можете завантажити цей шаблон VBA Intersect Excel тут - Шаблон VBA Intersect Excel

Перехрестя VBA - приклад №1

У першому прикладі ми виділимо та створимо область Перетину, коли у нас буде якийсь набір даних. Для цього ми маємо вибіркові дані, які містять 3 стовпці, заповнені цифрами, як показано нижче.

Тепер нам потрібно знайти область перетину вищезгаданої таблиці даних за допомогою VBA Intersect. Для цього виконайте наступні кроки:

Крок 1: Перейдіть до вікна VBA та відкрийте модуль у меню Вставка, як показано нижче.

У нас вийде порожнє вікно модуля.

Крок 2: Тепер напишіть підкатегорію VBA Intersect або будь-яким іншим ім’ям за вашим вибором.

Код:

 Sub VBAIntersect1 () Кінець Sub 

Крок 3: Тепер безпосередньо вставити команду Intersect, як показано нижче.

Код:

 Sub VBAIntersect1 () Перетинається (End Sub 

Як ми вже пояснили детальний синтаксис перетину, ми додамо область перетину. Ми можемо вибрати N кількість діапазонів, але мінімум два діапазони повинні бути там.

Розглянемо нижче ділянку перетину, де перша площа знаходиться від А1 до В8, друга - від В3 до С12, а третя - від А7 до С10. Ми можемо розглянути та вибрати будь-яку комбінацію візерунка перехресть.

Тепер давайте подивимось, в якій точці (і) зустрічаються ці ділянки та перетинаються. Спільна зона, створена всіма перерахованими вище районами, буде нашою областю перетину.

Крок 4: Тепер у модулі VBA Intersect виберіть перший діапазон областей, як показано нижче.

Код:

 Sub VBAIntersect1 () Перетинається (діапазон ("A1: B8") Кінець Sub 

Ми додали перший діапазон, але наш синтаксис ще неповний.

Крок 5: Тепер далі вставити решту двох областей, про які ми говорили вище, розділених комами.

Код:

 Sub VBAIntersect1 () Перетин (діапазон ("A1: B8"), діапазон ("B3: C12"), діапазон ("A7: C10")) Кінець Sub 

Крок 6: Тепер наведіть умову як "True".

Код:

 Sub VBAIntersect1 () Перетинається (діапазон ("A1: B8"), діапазон ("B3: C12"), діапазон ("A7: C10")) = Істинний кінець Sub 

Це завершує наш код.

Крок 7: Тепер складіть код і запустіть, натиснувши на кнопку Відтворити, яка розташована нижче рядка меню, як показано нижче.

Ми отримаємо загальну площу або пересічену область, яка має значення ІСТИНА, як показано вище. Хоча ми отримали область перетину, TRUE замінив дані, які були там у пересіченій області.

Крок 8: Тепер, щоб цього не втратити, ми можемо змінити колір фону, ті загальні клітини на будь-який колір на наш вибір. Для цього після синтаксису Intersect використовуйте функцію «Інтер’єр» разом із кольором, як показано нижче.

Код:

 Sub VBAIntersect1 () Перетинається (діапазон ("A1: B8"), діапазон ("B3: C12"), діапазон ("A7: C10")). 

Крок 9: Тепер у VBA ми не можемо використовувати ім'я кольору, який ми хочемо використовувати безпосередньо. Для цього нам потрібно додати " vb ", який використовується для активації кольорів, доступних у VBA. Тепер використовуйте його та додайте будь-яку назву кольору на ваш вибір. Тут ми вибираємо Зелений, як показано нижче.

Код:

 Sub VBAIntersect1 () Перетинається (діапазон ("A1: B8"), діапазон ("B3: C12"), діапазон ("A7: C10")). Внутрішній.Color = vbGreen End Sub 

Крок 10: Тепер знову скомпілюйте написаний код за один раз, оскільки код зовсім невеликий, і запустіть його.

Ми побачимо, що колір пересіченої ділянки змінено на Зелений та загальну площу, яка створюється перетином різних 3 областей у В7 до В8.

Перехрестя VBA - приклад №2

Існує ще один, але зовсім інший спосіб використання VBA Intersect. Цього разу ми використовуємо перетин у конкретному аркуші. У Sheet2 ми позначили область від B4 до E8, як показано нижче.

Виконайте наступні кроки:

Крок 1. У VBA перейдіть до таблиці 2 поточної робочої книги, як показано нижче.

Крок 2: Тепер виберіть робочий аркуш із цього першого випадаючого параметра. Це дозволить використовувати код лише в цьому поточному аркуші.

Крок 3: І з другого випадаючого меню виберіть варіант Змінити, як показано нижче. Це використовується для орієнтації на зміни, зроблені у вибраному діапазоні.

Крок 4: Ми запишемо наш код лише в першій підкатегорії.

Код:

 Приватний Sub Workheet_Change (ByVal Target As Range) Кінець Sub 

Крок 5: Ми будемо використовувати цикл If-Else для формування умови для функції перетину.

Код:

 Приватний Sub Workheet_Change (ByVal Target As Range) Якщо End If End Sub 

Крок 6: Спочатку виберіть цільовий діапазон від B4 до E8, як показано нижче. Це буде орієнтоване на перетин ділянки, що охоплюється в основному від B4 до E8.

Код:

 Приватний під робочий лист_Зміна (ціль ByVal як діапазон) Якщо перетинається (ціль, діапазон ("B4: E8")) End If End Sub 

Крок 7: І якщо в цільовій області нічого немає, нам потрібно написати заяву, яка перенаправить код наперед.

Код:

 Приватний підручник_Зміна (ByVal Target As Range) Якщо Пересікання (Ціль, Діапазон ("B4: E8")) немає нічого, тоді закінчується, якщо Кінець Sub 

Крок 8: І якщо дійсно ціль знаходиться поза зоною дії, ми можемо використовувати вікно з повідомленням попередження, як показано нижче.

Код:

 Private Sub Worksheet_Change (ByVal Target As Range) Якщо Пересікання (Ціль, Діапазон ("B4: E8") немає нічого, тоді MsgBox "Поза межами" Кінець, якщо Кінець Sub 

Крок 9: І в заяві Else, де щось написане всередині поля, тоді нам слід отримати підказку, якщо записаний вміст знаходиться у полі, як показано нижче.

Код:

 Private Sub Worksheet_Change (ByVal Target As Range) Якщо Пересікання (Ціль, Діапазон ("B4: E8") є нічим тоді MsgBox "За межами діапазону" Else MsgBox "В межах діапазону" End If End Sub 

Крок 10: Тепер складіть кожен крок написаного коду і закрийте робочий аркуш VBA. Як ми написали код, специфічний для аркуша, він буде працювати в тому ж самому.

Крок 11: Тепер напишіть щось всередині поля.

Як ми бачимо, ми написали 2 у комірці C5 всередині поля, ми отримали повідомлення або “ В межах діапазону ”.

Крок 12: Знову запишіть щось із поля. Ми написали 1 у комірку B10 і отримали повідомлення "Поза межами діапазону", як показано нижче.

Це ще один спосіб використання Intersect в Excel VBA.

Плюси Excel VBA перетинаються

  • Дуже легко принаймні виділити площу, яка перетинається процесом прикладу-1.
  • Це дуже корисно, коли нам потрібно фільтрувати або працювати над типом даних, які мають перетин з іншої області, наприклад, Дати, Власник тощо.

Що потрібно пам’ятати

  • Не забудьте зберегти файл у форматі Macro Enable Excel, щоб код діяв при кожному використанні.
  • Введення коду в Лист замість модуля, як показано в прикладі-2, зробіть код застосованим лише для цього аркуша. Цей код не працюватиме на будь-якому іншому аркуші.
  • Використання цільового діапазону, як показано в прикладі-2, корисно при визначенні області для удару.

Рекомендовані статті

Це путівник по перетину VBA. Тут ми обговорюємо, як використовувати функцію Exse VBA Intersect разом з деякими практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. Приклади циклів VBA
  2. Excel COLUMN до числа
  3. VBA робити до циклу
  4. Створіть бюджет в Excel

Категорія: