Vai esat kādreiz mēģinājis izprast nepazīstamu (un sarežģītu) Excel darbgrāmatu? Būtu noderīgi redzēt karti, kas sniedz pārskatu par to, kurās šūnās ir konstantes un kurās ir vērtības.
Varat izveidot VBA utilītu, kas ģenerē aktīvās darblapas karti. Karte tiek ģenerēta jaunā darblapā, un tā sastāv no krāsu kodētām šūnām, kas ļauj ātri identificēt vērtības, tekstu un formulas.
Tālāk ir parādīts šādas kartes piemērs. Šūnas, kurās ir teksts, ir zaļas, tās, kurās ir skaitliskā vērtība, ir dzeltenas, un šūnas, kurās ir formulas, ir sarkanas. Šāda karte var palīdzēt pamanīt iespējamās kļūdas. Piemēram, ja viena formula formulu blokā ir pārrakstīta ar vērtību, šī šūna kartes skatā izcelsies (kā piemērā šūnā Q11).
QuickMap VBA kods
Tālāk ir norādīta VBA procedūra, kas ģenerē darblapas karti. Ja vēlaties izmantot šo utilītu, vienkārši nokopējiet kodu un ielīmējiet to VBA modulī. Pēc tam aktivizējiet darblapu un izpildiet QuickMap apakšprogrammu.
Sub QuickMap()
Dim FormulaCells kā variants
Aptumšot teksta šūnas kā variantu
Dim NumberCells kā variants
Blāvs apgabals kā diapazons
Ja TypeName(ActiveSheet) <> “Worksheet” Pēc tam izejiet no apakšdaļas
Izveidojiet objektu mainīgos šūnu apakškopām
Kļūdas gadījumā atsākt nākamo
Iestatīt FormulaCells = diapazons(“A1”). Īpašās šūnas _
(xlFormulas, xlNumbers + xlTextValues + xlLogical)
Set TextCells = diapazons(“A1”). SpecialCells(xlConstants, xlTextValues)
Iestatīt NumberCells = diapazons(“A1”). SpecialCells(xlConstants, xlNumbers)
Par kļūdu GoTo 0
' Pievienojiet jaunu lapu un formatējiet to
Izklājlapas.Pievienot
Ar šūnām
.ColumnWidth = 2
.Fonta lielums = 8
.HorizontalAlignment = xlCenter
Beigt ar
Application.ScreenUpdating = False
Izpildiet formulas šūnas
Ja nav IsEmpty (FormulaCells), tad
Katram apgabalam FormulaCells.Areas
Ar ActiveSheet.Range(Apgabals.Adrese)
.Vērtība = “F”
.Interjers.ColorIndex = 3
Beigt ar
Nākamais apgabals
Beigas Ja
' Veiciet teksta šūnas
Ja nav tukšs (teksta šūnas), tad
Katram apgabalam TextCells.Areas
Ar ActiveSheet.Range(Apgabals.Adrese)
.Vērtība = “T”
.Interjers.ColorIndex = 4
Beigt ar
Nākamais apgabals
Beigas Ja
Izpildiet ciparu šūnas
Ja Not IsEmpty(NumberCells) Tad
Katram apgabalam NumberCells.Areas
Ar ActiveSheet.Range(Apgabals.Adrese)
.Vērtība = “N”
.Interjers.ColorIndex = 6
Beigt ar
Nākamais apgabals
Beigas Ja
Beigu apakš
Kā tas strādā
Procedūra vispirms pārbauda, vai aktīvā lapa ir darblapa. Ja tā nav, ir ātra izeja bez papildu darbībām. Ja aktīvā lapa ir darblapa, procedūra izveido trīs objekta mainīgos, izmantojot SpecialCells metodi, lai identificētu dažādus šūnu tipus. SpecialCells metode ir ļoti noderīga. Ja neesat ar to pazīstams, pārbaudiet to Excel tiešsaistes palīdzības failā. Ņemiet vērā, ka tiek izmantota opcija On Error Resume Next. Tas tiek darīts, lai izvairītos no kļūdas, kas rodas, ja neviena šūna nav piemērota, piemēram, ja darblapā nav formulu.
Pēc tam procedūra pievieno jaunu darblapu, samazina šūnas platumu un iestata horizontālo līdzinājumu centrā. Šis solis ir kosmētisks. Pēc tam apakšsistēma izslēdz ekrāna atjaunināšanu, lai nedaudz paātrinātu darbību.
Nākamie trīs koda bloki apstrādā šūnas. Ja neviena šūna nav piemērota, objekta mainīgais ir tukšs, tāpēc apakšgrupa to pārbauda. Pēc tam rutīna veic cilpas caur katru objekta diapazona apgabalu un formatē šūnu. Varat viegli pielāgot šo apakšprogrammas daļu, lai lietotu dažādus formatējumus.
Apskatiet Power Utility Pak pievienojumprogrammu, lai iegūtu daudz sarežģītāku šīs utilītas versiju.