Excel VBA - Съюз и пресичане

Excel VBA има два метода, принадлежащи към обект на приложение, за манипулиране на два или повече диапазона: 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 (съюз (Range ("A1: B4"), Range ("B3: C6")))

Може да се изненадате да получите стойността в Резултата като 160! Въпреки че в Съюза има само 14 клетки (8 във всеки диапазон, като 2 са общи), когато погледнете Selection, Union всъщност връща 16 клетки, следователно Резултатът като 160.

Пресечете се

Методът Intersect връща само общите клетки в два или повече диапазона, предадени като негов аргумент.

Следващата команда ще избере показания диапазон (сива област) на изображението по -долу:

1 Пресечете (Обхват ("A1: B4"), Обхват ("B3: C6")). Изберете

Използване на Intersect

Най -честото използване на Intersect е в събития, свързани с работен лист или работна книга. Използва се за проверка дали променените клетки (и) принадлежат на диапазон от интерес. Следващ пример с проверка дали клетката (ите) са се променили (идентифицирани от Target) и Обхват A1: A10 са често срещани и предприемете подходящи действия, ако са.

Обектът Intersect не връща нищо, ако няма общи клетки, така че Intersect (Target, Range (“A1: A10”)) Is Nothing няма да е истина, ако няма общи клетки. Добавянето на Не към условието го прави Истина само ако резултатът от теста Intersect (Target, Range (“A1: A10”)) Is Nothing е False, с други думи Target и Range A1: A10 имат някои общи клетки.

12345 Частен под работен лист_Смяна (ByVal Target As Range)Ако не се пресичат (Цел, Обхват ("A1: A10")) Няма нищо„Предприемете желаните действияКрай АкоEnd Sub

Написано от: Винамра Чандра

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave