Excel VBA має два методи, що належать об’єкту Application, для маніпулювання двома або більше діапазонами: Union та Intersect.
Союз
Метод Union повертає всі комірки у двох або більше діапазонах, переданих як його аргумент.
Наступна команда вибере діапазон, показаний на зображенні нижче:
1 | Союз (Діапазон ("A1: B4"), Діапазон ("B3: C6")). Виберіть |
Ви можете призначити будь -яке значення або формулу діапазону, що повертається методом Union:
1 | Союз (Діапазон ("A1: B4"), Діапазон ("B3: C6")) = 10 |
Це буде вводити значення 10 у кожну клітинку Союзу.
Ви можете обернути будь -яку функцію, яка узагальнює діапазон, навколо методу Union. Наступний приклад поверне суму значень у діапазонах A1: B4 та B3: C6:
1 | Результат = Application.WorksheetFunction.Sum (об'єднання (Діапазон ("A1: B4"), Діапазон ("B3: C6"))) |
Ви можете бути здивовані, отримавши значення в результаті як 160! Хоча в об’єднанні є лише 14 клітинок (по 8 у кожному діапазоні, причому 2 є загальними), коли ви дивитесь на Виділення, Union фактично повертає 16 клітинок, отже, результат - 160.
Перетинаються
Метод Intersect повертає лише загальні клітинки у двох або більше діапазонах, переданих як його аргумент.
Наступна команда вибере діапазон, показаний (сіра область) на зображенні нижче:
1 | Перетинати (Діапазон ("A1: B4"), Діапазон ("B3: C6")). Виберіть |
Використання Intersect
Найчастіше Інтерсект використовується у подіях, пов'язаних з робочим аркушем або робочою книгою. Він використовується для перевірки того, чи належать змінені клітинки до діапазону, що представляє інтерес. Наступний приклад з перевіркою, чи змінилися клітинки (ідентифіковані ціллю) та діапазоном A1: A10 є загальними, і вживайте відповідних заходів, якщо вони є.
Об'єкт перетинання нічого не повертає, якщо немає загальних клітинок, тому Перетинання (ціль, діапазон (“A1: A10”)) “Ніщо” не буде істинним, якщо немає загальних клітин. Додавання "Не" до цієї умови робить її істинною лише у тому випадку, якщо результат тесту Перетинання (ціль, діапазон ("A1: A10")) "Ніщо" не є хибним, іншими словами, ціль та діапазон A1: A10 мають деякі спільні клітини.
12345 | Приватний робочий аркуш_Змінити (ціль ByVal як діапазон)Якщо не перетинається (ціль, діапазон ("A1: A10")) То нічого'Зробіть бажану діюЗакінчити ЯкщоEnd Sub |
Автор: Вінамра Чандра