Oletko koskaan yrittänyt ymmärtää tuntematonta (ja monimutkaista) Excel-työkirjaa? Olisi hyödyllistä nähdä kartta, joka antaa yleiskuvan siitä, mitkä solut sisältävät vakioita ja mitkä solut sisältävät arvoja.
Voit luoda VBA-apuohjelman, joka luo aktiivisen laskentataulukon kartan. Kartta luodaan uudelle laskentataulukolle, ja se koostuu värikoodatuista soluista, joiden avulla voit nopeasti tunnistaa arvot, tekstin ja kaavat.
Alla on esimerkki tällaisesta kartasta. Solut, jotka sisältävät tekstiä, ovat vihreitä, solut, jotka sisältävät numeroarvon, ovat keltaisia ja solut, jotka sisältävät kaavoja, ovat punaisia. Tällainen kartta voi auttaa sinua havaitsemaan mahdolliset virheet. Jos esimerkiksi yksi kaavalohkon kaava on korvattu arvolla, kyseinen solu erottuu karttanäkymässä (kuten esimerkin solussa Q11).
QuickMap VBA -koodi
VBA-menettely, joka luo laskentataulukkokartan, on lueteltu alla. Jos haluat käyttää tätä apuohjelmaa, kopioi koodi ja liitä se VBA-moduuliin. Aktivoi sitten laskentataulukko ja suorita QuickMap-alirutiini.
Sub QuickMap()
Dim FormulaCells vaihtoehtona
Himmentää tekstisoluja vaihtoehtona
Dim NumberCells Variant
Himmeä alue vaihteluvälinä
Jos TyypinNimi(ActiveSheet) <> “Työtaulukko” Poistu Sub
' Luo objektimuuttujat solun osajoukkoille
Virheestä Jatka seuraavaksi
Aseta FormulaCells = Alue("A1").Erityissolut _
(xlKaavat, xlnumerot + xlTextValues + xlLogical)
Aseta tekstisolut = alue ("A1"). Erikoissolut (xlConstants, xlTextValues)
Aseta NumberCells = Alue ("A1"). Erikoissolut (xlVakiot, xlNumerot)
Virheessä GoTo 0
' Lisää uusi arkki ja muotoile se
Sheets.Add
Solujen kanssa
.Sarakkeen leveys = 2
.Font.Size = 8
.HorizontalAlignment = xlCenter
Lopeta kanssa
Application.ScreenUpdating = False
' Tee kaavasolut
Jos ei IsEmpty(FormulaCells) Sitten
Jokaiselle alueelle FormulaCells.Areasissa
ActiveSheet.Range(alue.Osoite) kanssa
.Arvo = "F"
.Interior.ColorIndex = 3
Lopeta kanssa
Seuraava alue
Loppu Jos
' Tee tekstisolut
Jos Ei IsEmpty(Tekstisolut) Sitten
Jokaiselle alueelle TextCells.Areasissa
ActiveSheet.Range(alue.Osoite) kanssa
.Arvo = "T"
.Interior.ColorIndex = 4
Lopeta kanssa
Seuraava alue
Loppu Jos
' Tee numeeriset solut
Jos Ei IsEmpty(NumberCells) Sitten
Jokaiselle alueelle NumberCells.Areasissa
ActiveSheet.Range(alue.Osoite) kanssa
.Arvo = "N"
.Interior.ColorIndex = 6
Lopeta kanssa
Seuraava alue
Loppu Jos
Lopeta ala
Kuinka se toimii
Toimenpide varmistaa ensin, että aktiivinen taulukko on laskentataulukko. Jos näin ei ole, on nopea poistuminen ilman lisätoimia. Kun aktiivinen taulukko on laskentataulukko, toiminto luo kolme objektimuuttujaa käyttämällä SpecialCells-menetelmää eri solutyyppien tunnistamiseen. SpecialCells-menetelmä on erittäin hyödyllinen. Jos et ole perehtynyt siihen, tarkista se Excelin online-ohjetiedostosta. Huomaa On Error Resume Next -toiminnon käyttö. Näin vältetään virhe, joka ilmenee, jos yksikään solu ei kelpaa – esimerkiksi jos laskentataulukossa ei ole kaavoja.
Seuraavaksi toimenpide lisää uuden laskentataulukon, pienentää solun leveyttä ja asettaa vaakasuuntaisen tasauksen keskelle. Tämä vaihe on kosmeettinen. Subi sammuttaa sitten näytön päivityksen nopeuttaakseen toimintaa hieman.
Seuraavat kolme koodilohkoa käsittelevät solut. Jos yksikään solu ei kelpaa, objektimuuttuja on Tyhjä, joten ali testaa tätä. Sitten rutiini kiertää jokaisen Alue-objektin alueen läpi ja muotoilee solun. Voit helposti mukauttaa tätä aliohjelman osaa soveltamaan erilaisia muotoiluja.
Tutustu Power Utility Pak -apuohjelmaan saadaksesi paljon kehittyneemmän version tästä apuohjelmasta.