Да ли сте икада покушали да схватите непознату (и компликовану) Екцел радну свеску? Било би корисно видети мапу која пружа преглед које ћелије садрже константе, а које вредности.
Можете креирати ВБА услужни програм који генерише мапу активног радног листа. Мапа се генерише на новом радном листу и састоји се од ћелија означених бојама које вам омогућавају да брзо идентификујете вредности, текст и формуле.
У наставку видите пример такве мапе. Ћелије које садрже текст су зелене, оне које садрже нумеричку вредност су жуте, а ћелије које садрже формуле су црвене. Таква мапа вам може помоћи да уочите потенцијалне грешке. На пример, ако је једна формула у блоку формула замењена вредношћу, та ћелија ће се истицати у приказу мапе (као у ћелији К11 у примеру).
КуицкМап ВБА код
ВБА процедура која генерише мапу радног листа је наведена у наставку. Ако желите да користите овај услужни програм, само копирајте код и налепите га у ВБА модул. Затим активирајте радни лист и извршите КуицкМап потпрограм.
Суб КуицкМап()
Дим ФормулаЦеллс као варијанта
Дим ТектЦеллс као варијанта
Дим НумберЦеллс као варијанта
Дим Ареа Ас Ранге
Ако ТипеНаме(АцтивеСхеет) <> „Ворксхеет“ Затим изађите из Суб
' Креирајте променљиве објекта за подскупове ћелија
У случају грешке Настави даље
Поставите ФормулаЦеллс = Опсег(“А1”).СпециалЦеллс _
(клФормуле, клНумберс + клТектВалуес + клЛогицал)
Поставите ТектЦеллс = Опсег(“А1”).СпециалЦеллс(клЦонстантс, клТектВалуес)
Поставите НумберЦеллс = Опсег(“А1”).СпециалЦеллс(клЦонстантс, клНумберс)
У случају грешке ГоТо 0
' Додајте нови лист и форматирајте га
Схеетс.Адд
Са ћелијама
.Ширина колоне = 2
.Величина фонта = 8
.ХоризонталАлигнмент = клЦентер
Завршити
Апплицатион.СцреенУпдатинг = Фалсе
' Урадите ћелије формуле
Ако није ИсЕмпти(ФормулаЦеллс) Онда
За сваку област у ФормулаЦеллс.Области
Са АцтивеСхеет.Ранге(Ареа.Аддресс)
.Вредност = „Ф“
.Интериор.ЦолорИндек = 3
Завршити
Нект Ареа
Крај Ако
' Урадите текстуалне ћелије
Ако није ИсЕмпти(ТектЦеллс) Онда
За сваку област у ТектЦеллс.Области
Са АцтивеСхеет.Ранге(Ареа.Аддресс)
.Вредност = „Т“
.Интериор.ЦолорИндек = 4
Завршити
Нект Ареа
Крај Ако
' Урадите нумеричке ћелије
Ако није ИсЕмпти(НумберЦеллс) Онда
За сваку област у НумберЦеллс.Ареас
Са АцтивеСхеет.Ранге(Ареа.Аддресс)
.Вредност = „Н“
.Интериор.ЦолорИндек = 6
Завршити
Нект Ареа
Крај Ако
Енд Суб
Како то ради
Процедура прво проверава да ли је активни лист радни лист. Ако није, постоји брзи излаз без даље акције. Када је активни лист радни лист, процедура креира три променљиве објекта коришћењем методе СпециалЦеллс за идентификацију различитих типова ћелија. Метода СпециалЦеллс је веома корисна. Ако нисте упознати са тим, погледајте у Екцел-овој датотеци помоћи на мрежи. Обратите пажњу на употребу опције Настави након грешке. Ово је да би се избегла грешка која се јавља ако ниједна ћелија не испуњава услове — на пример, ако радни лист нема формуле.
Затим, процедура додаје нови радни лист, смањује ширину ћелије и поставља хоризонтално поравнање на центар. Овај корак је козметички. Подлога затим искључује ажурирање екрана да би се ствари мало убрзале.
Следећа три блока кода обрађују ћелије. Ако се ниједна ћелија не квалификује, променљива објекта је Празна, тако да под-тестови за ово. Затим, рутина пролази кроз сваку област у објекту Ранге и форматира ћелију. Можете лако да прилагодите овај део потпрограма да бисте применили различито форматирање.
Погледајте додатак Повер Утилити Пак за много софистициранију верзију овог услужног програма.