Опитвали ли сте някога да осмислите непозната (и сложна) работна книга на Excel? Би било полезно да видите карта, която предоставя общ преглед на това кои клетки съдържат константи и кои клетки съдържат стойности.
Можете да създадете помощна програма VBA, която генерира карта на активния работен лист. Картата се генерира на нов работен лист и се състои от цветно кодирани клетки, които ви позволяват бързо да идентифицирате стойности, текст и формули.
По-долу виждате пример за такава карта. Клетките, които съдържат текст, са зелени, тези, които съдържат числова стойност, са жълти, а клетките, които съдържат формули, са червени. Такава карта може да ви помогне да откриете потенциални грешки. Например, ако една формула в блок от формули е била презаписана със стойност, тази клетка ще се откроява в изгледа на картата (както в клетка Q11 в примера).
Кодът на QuickMap VBA
Процедурата на VBA, която генерира картата на работния лист, е изброена по-долу. Ако искате да използвате тази помощна програма, просто копирайте кода и го поставете във VBA модул. След това активирайте работен лист и изпълнете подпрограмата QuickMap.
Под QuickMap()
Dim FormulaCells като вариант
Dim TextCells като вариант
Dim NumberCells като вариант
Затъмнена зона като обхват
Ако TypeName(ActiveSheet) <> “Worksheet” След това излезте от Sub
' Създайте обектни променливи за подмножества от клетки
При грешка Продължете напред
Задайте FormulaCells = Range(“A1”).SpecialCells _
(xlFormulas, xlNumbers + xlTextValues + xlLogical)
Задайте TextCells = Range(“A1”).SpecialCells(xlConstants, xlTextValues)
Задайте NumberCells = Range(“A1”).SpecialCells(xlConstants, xlNumbers)
При грешка Отидете до 0
' Добавете нов лист и го форматирайте
Листове.Добавяне
С клетки
.Ширина на колона = 2
.Размер на шрифта = 8
.Хоризонтално подравняване = xlCenter
Край с
Application.ScreenUpdating = False
' Направете клетките с формула
Ако не е празно (FormulaCells) Тогава
За всяка област във FormulaCells.Areas
С ActiveSheet.Range(Area.Address)
.Стойност = „F“
.Interior.ColorIndex = 3
Край с
Следваща зона
Край, ако
' Направете текстовите клетки
Ако не е Empty(TextCells) Тогава
За всяка област в TextCells.Areas
С ActiveSheet.Range(Area.Address)
.Стойност = „T“
.Interior.ColorIndex = 4
Край с
Следваща зона
Край, ако
' Направете числовите клетки
Ако не е празно(числови клетки), тогава
За всяка област в NumberCells.Areas
С ActiveSheet.Range(Area.Address)
.Стойност = „N“
.Interior.ColorIndex = 6
Край с
Следваща зона
Край, ако
Край под
Как работи
Процедурата първо проверява дали активният лист е работен лист. Ако не е, има бърз изход без допълнителни действия. Когато активният лист е работен лист, процедурата създава три обектни променливи, като използва метода SpecialCells за идентифициране на различните типове клетки. Методът SpecialCells е много полезен. Ако не сте запознати с него, проверете го в онлайн помощния файл на Excel. Забележете използването на Възобновяване на след грешка при грешка. Това е, за да се избегне грешката, която възниква, ако нито една клетка не отговаря на изискванията - например, ако работният лист няма формули.
След това процедурата добавя нов работен лист, намалява ширината на клетката и задава хоризонталното подравняване в центъра. Тази стъпка е козметична. След това субстанцията изключва актуализирането на екрана, за да ускори малко нещата.
Следващите три блока код обработват клетките. Ако нито една клетка не отговаря на изискванията, променливата на обекта е празна, така че подтестовете за това. След това рутината преминава през всяка област в обекта Range и форматира клетката. Можете лесно да персонализирате тази част от подпрограмата, за да приложите различно форматиране.
Вижте добавката Power Utility Pak за много по-усъвършенствана версия на тази помощна програма.