Excel VBA Intersect

VBA Пересечение в математике или в геометрии означает, когда две или более линий или области пересекаются друг с другом. Общая точка или область, созданная после этого, называется точкой пересечения или областью. В Excel также мы можем выделить и измерить площадь пересечения.

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

Функция пересечения имеет следующий синтаксис в Excel VBA:

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

Как использовать функцию пересечения Excel VBA?

Мы научимся использовать функцию пересечения VBA с несколькими примерами в Excel.

Вы можете скачать этот шаблон VBA Intersect Excel здесь - Шаблон VBA Intersect Excel

VBA Intersect - Пример № 1

В первом примере мы выделим и создадим область пересечения, когда у нас будет некоторый набор данных. Для этого у нас есть примеры данных, которые имеют 3 столбца, заполненных числами, как показано ниже.

Теперь нам нужно найти область пересечения вышеуказанной таблицы данных, используя VBA Intersect. Для этого выполните следующие шаги:

Шаг 1. Откройте окно VBA и откройте модуль из меню «Вставка», как показано ниже.

Мы получим пустое окно модуля.

Шаг 2: Теперь напишите Подкатегория VBA Intersect или под любым другим именем по вашему выбору.

Код:

 Sub VBAIntersect1 () End Sub 

Шаг 3: Теперь непосредственно вставьте команду Пересечь, как показано ниже.

Код:

 Sub VBAIntersect1 () Intersect (End Sub 

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

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

Теперь давайте посмотрим, в какой точке эти области встречаются и пересекаются друг с другом. Общая область, созданная всеми вышеупомянутыми областями, будет нашей областью пересечения.

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

Код:

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

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

Шаг 5: Теперь дополнительно вставьте остальные две области, которые мы обсуждали выше, через запятую.

Код:

 Sub VBAIntersect1 () Intersect (диапазон («A1: B8»), диапазон («B3: C12»), диапазон («A7: C10»)) End Sub 

Шаг 6: Теперь задайте условие как «True».

Код:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")) = Истинный конец Sub 

Это завершает наш код.

Шаг 7: Теперь скомпилируйте код и запустите, нажав на кнопку Play, которая находится под строкой меню, как показано ниже.

Мы получим общую область или область пересечения, которая имеет значение ИСТИНА, как показано выше. Хотя мы получили область пересечения, эта ИСТИНА заменила данные, которые были в этой области.

Шаг 8: Теперь, чтобы не потерять это, мы можем изменить цвет фона, эти общие ячейки на любой цвет по нашему выбору. Для этого после синтаксиса Intersect используйте функцию Interior вместе с Color, как показано ниже.

Код:

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

Шаг 9: Теперь в VBA мы не можем использовать название цвета, который мы хотим использовать напрямую. Для этого нам нужно добавить « vb », который используется для активации цветов, доступных в VBA. Теперь используйте его и добавьте любое название цвета по вашему выбору. Мы выбираем зеленый здесь, как показано ниже.

Код:

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

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

Мы увидим, что цвет пересекаемой области меняется на Зеленый и общая область, которая создается пересечением трех разных областей от B7 до B8.

VBA Intersect - пример № 2

Существует другой, но совершенно другой способ использования VBA Intersect. На этот раз мы используем пересечение в конкретном листе. На Листе 2 мы отметили область от B4 до E8, как показано ниже.

Выполните следующие шаги:

Шаг 1: В VBA перейдите к Листу 2 текущей Рабочей книги, как показано ниже.

Шаг 2: Теперь выберите « Рабочий лист» в первом раскрывающемся списке. Это позволит использовать код только в этом текущем листе.

Шаг 3: И во втором раскрывающемся списке выберите параметр « Изменить», как показано ниже. Это используется для определения изменений, сделанных в выбранном диапазоне.

Шаг 4: Мы напишем наш код только в первой подкатегории.

Код:

 Private Sub Worksheet_Change (ByVal Target As Range) Конец Sub 

Шаг 5: Мы будем использовать цикл If-Else для формирования условия для функции пересечения.

Код:

 Private Sub Worksheet_Change (ByVal Target As Range), если End End, End 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 (Target, Range («B4: E8»))) равно нулю, то End End End End 

Шаг 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 "Вне диапазона" Иначе MsgBox "В пределах диапазона" End If End Sub 

Шаг 10: Теперь скомпилируйте каждый шаг написанного кода и закройте рабочий лист VBA. Поскольку мы написали код, специфичный для листа, он будет работать так же.

Шаг 11: Теперь напишите что-нибудь внутри коробки.

Как мы видим, мы написали 2 в ячейке C5 внутри коробки, мы получили сообщение или « В пределах диапазона ».

Шаг 12: Снова напишите что-нибудь из коробки. Мы написали 1 в ячейке B10 и получили сообщение «Out of Range», как показано ниже.

Это еще один способ использования Intersect в Excel VBA.

Плюсы Excel VBA Intersect

  • Очень легко по крайней мере выделить область, которая пересекается в процессе примера 1.
  • Это очень полезно, когда нам нужно отфильтровать или обработать данные такого типа, которые пересекаются с другой областью, такой как даты, владелец и т. Д.

То, что нужно запомнить

  • Не забудьте сохранить файл в формате Macro Enable Excel, чтобы код работал при каждом использовании.
  • Записав код на листе вместо модуля, как показано в примере 2, сделайте код применимым только для этого листа. Этот код не будет работать на любом другом листе.
  • Использование Target Range, как показано в примере 2, полезно при указании области для удара.

Рекомендуемые статьи

Это руководство по VBA Intersect. Здесь мы обсуждаем, как использовать функцию пересечения Excel VBA вместе с некоторыми практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Примеры по циклам VBA
  2. Excel КОЛОННА в номер
  3. VBA Do Loop
  4. Создать бюджет в Excel

Категория: