Ar kada nors bandėte suprasti nepažįstamą (ir sudėtingą) „Excel“ darbaknygę? Būtų naudinga pamatyti žemėlapį, kuriame būtų pateikta apžvalga, kuriuose langeliuose yra konstantos, o kuriuose – reikšmės.
Galite sukurti VBA priemonę, kuri generuoja aktyvaus darbalapio žemėlapį. Žemėlapis sugeneruojamas naujame darbalapyje ir susideda iš spalvomis koduotų langelių, leidžiančių greitai nustatyti reikšmes, tekstą ir formules.
Žemiau matote tokio žemėlapio pavyzdį. Langeliai, kuriuose yra teksto, yra žali, tie, kuriuose yra skaitinė reikšmė, yra geltoni, o langeliai, kuriuose yra formulių, yra raudoni. Toks žemėlapis gali padėti pastebėti galimas klaidas. Pavyzdžiui, jei viena formulių bloko formulė buvo perrašyta reikšme, tas langelis išsiskirs žemėlapio rodinyje (kaip pavyzdyje Q11 langelyje).
QuickMap VBA kodas
Toliau pateikiama VBA procedūra, kuri sukuria darbalapio žemėlapį. Jei norite naudoti šią priemonę, tiesiog nukopijuokite kodą ir įklijuokite jį į VBA modulį. Tada suaktyvinkite darbalapį ir paleiskite „QuickMap“ paprogramę.
Sub QuickMap()
Dim FormulaCells kaip variantas
Pritemdyti teksto langelius kaip variantą
Pritemdykite skaičių langelius kaip variantą
Pritemdyta sritis kaip diapazonas
Jei TypeName(ActiveSheet) <> "Worksheet" Tada išeikite iš sub
Sukurkite objektų kintamuosius langelių pogrupiams
Įvykus klaidai, tęskite toliau
Nustatyti FormulaCells = diapazonas („A1“). Specialieji langeliai _
(xlFormulės, xlSkaičiai + xlTextValues + xlLogical)
Nustatyti teksto langelius = diapazonas („A1“). Specialieji langeliai (xlConstants, xlTextValues)
Nustatyti numerio langelius = diapazonas („A1“). Specialieji langeliai (xlConstants, xlSkaičiai)
Dėl klaidos GoTo 0
' Pridėkite naują lapą ir suformatuokite jį
Lakštai.Pridėti
Su ląstelėmis
.Stulpelio plotis = 2
.Šrifto dydis = 8
.HorizontalAlignment = xlCenter
Baigti su
Application.ScreenUpdating = Netiesa
Padarykite formulės langelius
Jei Ne IsEmpty (FormulaCells) Tada
Kiekvienai sričiai FormulaCells.Areas
Su ActiveSheet.Range(Sritis.Adresas)
.Value = "F"
.Interjeras.ColorIndex = 3
Baigti su
Kita sritis
Pabaiga, jei
' Atlikite teksto langelius
Jei Ne IsEmpty (TextCells) Tada
Kiekvienai sričiai TextCells.Areas
Su ActiveSheet.Range(Sritis.Adresas)
.Value = "T"
.Interjeras.ColorIndex = 4
Baigti su
Kita sritis
Pabaiga, jei
' Atlikite skaitines ląsteles
Jei Ne IsEmpty (NumberCells) Tada
Kiekvienai sričiai skaičių langeliuose.Sritys
Su ActiveSheet.Range(Sritis.Adresas)
.Value = "N"
.Interjeras.ColorIndex = 6
Baigti su
Kita sritis
Pabaiga, jei
Pabaigos sub
Kaip tai veikia
Procedūros metu pirmiausia patikrinama, ar aktyvus lapas yra darbalapis. Jei ne, galite greitai išeiti be jokių veiksmų. Kai aktyvus lapas yra darbalapis, procedūra sukuria tris objekto kintamuosius naudojant SpecialCells metodą, skirtą įvairiems langelių tipams nustatyti. SpecialCells metodas yra labai naudingas. Jei nesate su juo susipažinę, patikrinkite tai „Excel“ internetiniame pagalbos faile. Atkreipkite dėmesį į „On Error Resume Next“ naudojimą. Taip išvengiama klaidos, kuri įvyksta, jei nėra tinkamų langelių, pavyzdžiui, jei darbalapyje nėra formulių.
Tada procedūra prideda naują darbalapį, sumažina langelio plotį ir nustato horizontalų lygiavimą į centrą. Šis žingsnis yra kosmetinis. Tada antrinis įrenginys išjungia ekrano atnaujinimą, kad šiek tiek paspartintų.
Kiti trys kodo blokai apdoroja ląsteles. Jei nėra tinkamų langelių, objekto kintamasis yra tuščias, todėl antrinė dalis tai tikrina. Tada rutina pereina per kiekvieną diapazono objekto sritį ir suformatuoja langelį. Galite lengvai pritaikyti šią paprogramės dalį, kad pritaikytumėte skirtingą formatavimą.
Peržiūrėkite „ Power Utility Pak“ priedą , kad gautumėte daug sudėtingesnę šios programos versiją.