Jeste li ikada pokušali smisliti nepoznatu (i kompliciranu) Excel radnu knjigu? Bilo bi korisno vidjeti kartu koja pruža pregled koje ćelije sadrže konstante, a koje vrijednosti.
Možete stvoriti VBA uslužni program koji generira kartu aktivnog radnog lista. Karta se generira na novom radnom listu i sastoji se od ćelija označenih bojama koje vam omogućuju brzo prepoznavanje vrijednosti, teksta i formula.
U nastavku vidite primjer takve karte. Ćelije koje sadrže tekst su zelene, one koje sadrže numeričku vrijednost su žute, a ćelije koje sadrže formule su crvene. Takva karta može vam pomoći uočiti potencijalne pogreške. Na primjer, ako je jedna formula u bloku formula prepisana vrijednošću, ta će se ćelija isticati u prikazu karte (kao u ćeliji Q11 u primjeru).
QuickMap VBA kod
VBA procedura koja generira kartu radnog lista navedena je u nastavku. Ako želite koristiti ovaj uslužni program, samo kopirajte kod i zalijepite ga u VBA modul. Zatim aktivirajte radni list i izvršite podprogram QuickMap.
Sub QuickMap()
Dim FormulaCells kao varijanta
Zatamnjene tekstualne ćelije kao varijanta
Dim NumberCells kao varijanta
Zatamnjeno područje kao raspon
Ako TypeName(ActiveSheet) <> “Worksheet” Zatim izađite iz Sub
' Stvorite objektne varijable za podskupove ćelija
U slučaju pogreške Nastavi dalje
Postavite FormulaCells = Raspon(“A1”).SpecialCells _
(xlFormule, xlNumbers + xlTextValues + xlLogical)
Postavite TextCells = Raspon(“A1”).SpecialCells(xlConstants, xlTextValues)
Postavi NumberCells = Raspon(“A1”).SpecialCells(xlConstants, xlNumbers)
U slučaju pogreške Idite na 0
' Dodajte novi list i formatirajte ga
Listovi.Dodaj
Sa stanicama
.Širina stupca = 2
.Veličina fonta = 8
.HorizontalAlignment = xlCenter
Završi s
Application.ScreenUpdating = False
' Napravite ćelije formule
Ako nije IsEmpty(FormulaCells) Onda
Za svako područje u FormulaCells.Područja
S ActiveSheet.Range(Area.Address)
.Vrijednost = "F"
.Interijer.Indeks boja = 3
Završi s
Sljedeće područje
Završi ako
' Napravite tekstualne ćelije
Ako nije IsEmpty(TextCells) Onda
Za svako područje u tekstualnim ćelijama.Područja
S ActiveSheet.Range(Area.Address)
.Vrijednost = "T"
.Interijer.Indeks boja = 4
Završi s
Sljedeće područje
Završi ako
' Napravite numeričke ćelije
Ako nije IsEmpty(NumberCells) Onda
Za svako područje u NumberCells.Područja
S ActiveSheet.Range(Area.Address)
.Vrijednost = "N"
.Interijer.Indeks boja = 6
Završi s
Sljedeće područje
Završi ako
Kraj Sub
Kako radi
Postupak prvo provjerava je li aktivni list radni list. Ako nije, postoji brzi izlaz bez daljnjih radnji. Kada je aktivni list radni list, procedura stvara tri objektne varijable korištenjem metode SpecialCells za identifikaciju različitih tipova ćelija. Metoda SpecialCells je vrlo korisna. Ako niste upoznati s njim, provjerite ga u Excelovoj online datoteci pomoći. Obratite pažnju na upotrebu opcije Nastavi nakon pogreške. Ovo je kako bi se izbjegla pogreška koja se javlja ako nijedna ćelija ne ispunjava uvjete - na primjer, ako radni list nema formule.
Zatim, postupak dodaje novi radni list, smanjuje širinu ćelije i postavlja vodoravno poravnanje na centar. Ovaj korak je kozmetički. Podmornica tada isključuje ažuriranje zaslona kako bi se stvari malo ubrzale.
Sljedeća tri bloka koda obrađuju ćelije. Ako nijedna ćelija nije kvalificirana, varijabla objekta je Empty, tako da podtestira to. Zatim, rutina petlja kroz svako područje u objektu Range i formatira ćeliju. Ovaj dio potprograma možete jednostavno prilagoditi za primjenu različitog oblikovanja.
Pogledajte dodatak Power Utility Pak za mnogo sofisticiraniju verziju ovog uslužnog programa.