Próbáltál már értelmezni egy ismeretlen (és bonyolult) Excel-munkafüzetet? Hasznos lenne látni egy térképet, amely áttekintést ad arról, hogy mely cellák tartalmaznak állandókat és mely cellák értékeket.
Létrehozhat egy VBA segédprogramot, amely létrehozza az aktív munkalap térképét. A térkép egy új munkalapon jön létre, és színkódolt cellákból áll, amelyek segítségével gyorsan azonosíthatja az értékeket, a szöveget és a képleteket.
Az alábbiakban egy ilyen térkép példáját láthatja. A szöveget tartalmazó cellák zöldek, a számértéket tartalmazó cellák sárgák, a képleteket tartalmazó cellák pedig pirosak. Egy ilyen térkép segíthet felismerni a lehetséges hibákat. Például, ha egy képletblokkban egy képletet felülírt egy érték, akkor az a cella kiemelkedik a térképnézetben (mint a példa Q11 cellájában).

A QuickMap VBA kód
Az alábbiakban felsoroljuk a munkalapleképezést létrehozó VBA-eljárást. Ha használni szeretné ezt a segédprogramot, egyszerűen másolja ki a kódot, és illessze be egy VBA-modulba. Ezután aktiváljon egy munkalapot, és futtassa a QuickMap szubrutint.
Sub QuickMap()
Dim FormulaCells As Variant
Dim TextCells as Variant
Dim NumberCells Változatként
Dim Terület Tartományként
Ha TypeName(ActiveSheet) <> „Worksheet”, akkor lépjen ki a Sub
Hozzon létre objektumváltozókat a cella részhalmazokhoz
Hiba esetén Folytatás a következőre
Set FormulaCells = Tartomány(“A1”).SpecialCells _
(xlKépletek, xlSzámok + xlTextValues + xlLogical)
Set TextCells = Tartomány("A1").SpecialCells(xlConstants, xlTextValues)
Set NumberCells = Tartomány(“A1”).SpecialCells(xlConstants, xlNumbers)
Error GoTo 0
' Adjon hozzá egy új lapot, és formázza azt
Lapok.Hozzáadás
Cellákkal
.Oszlopszélesség = 2
.Betűméret = 8
.HorizontalAlignment = xlCenter
Vége ezzel
Application.ScreenUpdating = Hamis
' Végezze el a képlet celláit
Ha nem IsEmpty(FormulaCells) Akkor
FormulaCells.Areas minden területéhez
Az ActiveSheet.Range(Area.Address) segítségével
.Value = "F"
.Interior.ColorIndex = 3
Vége ezzel
Következő terület
Vége Ha
' Végezze el a szövegcellákat
Ha nem IsEmpty(TextCells) Akkor
A TextCells.Areas egyes területeihez
Az ActiveSheet.Range(Area.Address) segítségével
.Value = "T"
.Interior.ColorIndex = 4
Vége ezzel
Következő terület
Vége Ha
' Végezze el a numerikus cellákat
Ha nem IsEmpty(NumberCells) Akkor
Minden területhez SzámCellákban.Areas
Az ActiveSheet.Range(Area.Address) segítségével
.Érték = "N"
.Interior.ColorIndex = 6
Vége ezzel
Következő terület
Vége Ha
Vége Sub
Hogyan működik
Az eljárás először ellenőrzi, hogy az aktív lap munkalap-e. Ha nem, van egy gyors kilépés, további teendők nélkül. Ha az aktív lap egy munkalap, az eljárás három objektumváltozót hoz létre a SpecialCells metódus segítségével a különböző cellatípusok azonosítására. A SpecialCells módszer nagyon hasznos. Ha nem ismeri, nézze meg az Excel online súgójában. Figyelje meg az On Error Resume Next használatát. Ezzel elkerülhető a hiba, amely akkor fordul elő, ha egyetlen cella sem felel meg – például ha a munkalapon nincsenek képletek.
Ezután az eljárás új munkalapot ad hozzá, csökkenti a cella szélességét, és a vízszintes igazítást középre állítja. Ez a lépés kozmetikai jellegű. Ezután a sub kikapcsolja a képernyőfrissítést, hogy egy kicsit felgyorsítsa a dolgokat.
A következő három kódblokk a cellákat dolgozza fel. Ha egyetlen cella sem felel meg, akkor az objektumváltozó üres, ezért az alprogram ezt teszteli. Ezután a rutin végigfut a Tartomány objektum minden területén, és formázza a cellát. Az alprogram ezen részét könnyen testreszabhatja különböző formázások alkalmazásához.
Tekintse meg a Power Utility Pak bővítményt a segédprogram sokkal kifinomultabb verziójához.