Упоредите опсеге у програму Екцел ВБА - Једноставни Екцел макрои

Преглед садржаја

У наставку ћемо погледати програм у Екцел ВБА то упоређује насумично изабран распони и истиче ћелије које су јединствене. Ако још нисте упознати са областима, препоручујемо вам да прво прочитате овај пример.

Ситуација:

Напомена: једина јединствена вредност у овом примеру је 3 јер се све остале вредности појављују у још најмање једној области. Да бисте изабрали опсег ("Б2: Б7, Д3: Е6, Д8: Е9"), држите притиснут тастер Цтрл и изаберите сваку област.

Поставите командно дугме на свој радни лист и додајте следеће редове кода:

1. Прво, декларишемо четири Ранге објекта и две променљиве типа Интегер.

Дим рангеТоУсе Ас Ранге, синглеАреа Ас Ранге, целл1 Ас Ранге, целл2 Ас Ранге, и Ас Интегер, ј Ас Интегер

2. Покрећемо објекат Ранге рангеТоУсе са изабраним опсегом.

Сет рангеТоУсе = Селецтион

3. Додајте линију која мења боју позадине свих ћелија у „Без попуњавања“. Додајте и линију која уклања границе свих ћелија.

Целлс.Интериор.ЦолорИндек = 0
Целлс.Бордерс.ЛинеСтиле = клНоне

4. Обавестите корисника када изабере само једно подручје.

Ако је Селецтион.Ареас.Цоунт <= 1 Тада
МсгБок "Молимо изаберите више области."
Иначе
Крај Ако

Следећи кодни редови (на 5, 6 и 7) морају се додати између Елсе и Енд Иф.

5. Обојите ћелије изабраних области.

рангеТоУсе.Интериор.ЦолорИндек = 38

6. Ограничите свако подручје.

За сваки синглеАреа Ин рангеТоУсе.Ареас
синглеАреа.БордерАроунд ЦолорИндек: = 1, Веигхт: = клТхин
Нект синглеАреа

7. Остатак овог програма изгледа овако.

За и = 1 За рангеТоУсе.Ареас.Цоунт
За ј = и + 1 За распонТоУсе.Ареас.Цоунт
За сваку ћелију1 У рангеТоУсе.Ареас (и)
За сваку ћелију2 У рангеТоУсе.Ареас (ј)
Ако је ћелија1.Вредност = ћелија2.Вредност Затим
целл1.Интериор.ЦолорИндек = 0
целл2.Интериор.ЦолорИндек = 0
Крај Ако
Следећа ћелија 2
Следећа ћелија 1
Даље ј
Затим сам

Објашњење: ово може изгледати помало неодољиво, али није тако тешко. рангеТоУсе.Ареас.Цоунт је једнако 3, тако да се прве две линије кода своде на За и = 1 до 3 и За ј = и + 1 до 3. За и = 1, ј = 2, Екцел ВБА упоређује све вредности прве области са свим вредностима друге области. За и = 1, ј = 3, Екцел ВБА упоређује све вредности прве области са свим вредностима треће области. За и = 2, ј = 3, Екцел ВБА упоређује све вредности друге области са свим вредностима треће области. Ако су вредности исте, поставља боју позадине обе ћелије на „Без попуне“, јер нису јединствене.

Резултат је када притиснете командно дугме на листу:

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave