Innholdsfortegnelse:
Video: Top 25 Excel 2016 Tips and Tricks 2024
Å referere til en gjenstand i VBA-koden er viktig fordi du må identifisere objektet som du vil jobbe med i Excel 2016. Tross alt kan VBA ikke lese tankene dine - ennå. Det er ryktet om at tankelesningsobjektet vil bli introdusert i Excel 2019.
Du kan jobbe med en hel samling objekter i ett fall. Oftere, men du må jobbe med et bestemt objekt i en samling (for eksempel et bestemt regneark i en arbeidsbok). For å referere til et enkelt objekt fra en samling, plasserer du objektets navn eller indeksnummer i parentes etter samlingens navn, slik:
Regneark ("Sheet1")
Legg merke til at arkets navn er i anførselstegn. Hvis du utelater anførselstegnene, vil Excel ikke kunne identifisere objektet (og antar at det er et variabelt navn).
Hvis Sheet1 er det første (eller eneste) regnearket i samlingen, kan du også bruke følgende referanse:
Regneark (1)
I dette tilfellet er tallet ikke i anførselstegn. Bunnlinjen? Hvis du refererer til et objekt ved å bruke navnet sitt, bruk anførselstegn. Hvis du henviser til et objekt ved å bruke indeksnummeret, bruker du et vanlig tall uten anførselstegn.
Hva med diagramark? Et diagramblad inneholder et enkelt diagram. Den har en arkfane, men det er ikke et regneark. Vel, som det viser seg, har objektmodellen en samling som heter Charts. Denne samlingen inneholder alle kartarkobjektene i en arbeidsbok (og inkluderer ikke diagrammer som er innebygd i et regneark).
Og bare for å holde ting logisk, er det en annen samling kalt Ark. Arkene i arket inneholder alle ark (regneark og diagramark) i en arbeidsbok. Arkene i arkene er nyttige hvis du vil jobbe med alle ark i en arbeidsbok og ikke bryr seg om de er regneark eller diagramark.
Så et enkelt regneark med navnet Sheet1 er et medlem av to samlinger: Worksheets-samlingen og Arkets Arkiv. Du kan referere til det på to måter:
Regneark ("Sheet1") Ark ("Sheet1")
Navigere gjennom hierarkiet
Hvis du vil arbeide med Excel-objekter, er de alle under Programobjekt. Så start med å skrive Søknad .
Hvert annet objekt i Excels objektmodell er under Applikasjonsobjektet. Du kommer til disse objektene ved å flytte ned hierarkiet og koble hvert objekt på vei med dot (.) Operatøren. For å komme til arbeidsbokobjektet som heter Book1. xlsx, start med applikasjonsobjektet og naviger ned til arbeidsboksens samlingsobjekt:
Søknad.Arbeidsbøker ("Book1. Xlsx")
For å navigere lengre til et bestemt regneark, legg til en prikkoperatør og få tilgang til samlingsobjektet Regneark:
Søknad. Arbeidsbøker ("Book1. Xlsx"). Regneark (1)
Ikke langt nok ennå? Hvis du virkelig vil få verdien fra celle A1 på det første regnearket i arbeidsboken, kalt Book1. xlsx, du må navigere et nivå til Range-objektet:
Application. Arbeidsbøker ("Book1. Xlsx"). Oppgaveark (1). Range (“A1”). Verdi
Når du refererer til et områdeobjekt på denne måten, kalles det en fullt kvalifisert referanse. Du har fortalt Excel nøyaktig hvilket område du vil ha, hvilket regneark og hvilken arbeidsbok, og har ikke etterlatt noe for fantasien. Fantasi er bra i folk, men ikke så bra i dataprogrammer.
For øvrig har arbeidsboknavn også en prikk for å skille filnavnet fra utvidelsen (for eksempel Book1. Xlsx). Det er bare en tilfeldighet. Punktet i et filnavn har ingenting i det hele tatt å gjøre med punktoperatøren.
Forenkling av objektreferanser
Hvis du skulle kvalifisere alle objektreferanser du gjør, vil koden bli ganske lang, og det kan være vanskeligere å lese. Heldigvis gir Excel deg noen snarveier som kan forbedre lesbarheten (og lagre noen skrive). For det første antas Programobjektet alltid. Det er bare noen få tilfeller når det er fornuftig å skrive det. Å oversende programobjektreferansen forkorter eksempelet til
arbeidsbøker ("Book1. Xlsx"). Oppgaveark (1). Range (“A1”). Verdi
Det er en ganske god forbedring. Men vent, det er mer. Hvis du er sikker på at Book1. xlsx er den aktive arbeidsboken, du kan også utelate denne referansen. Nå er du nede til
regneark (1). Range (“A1”). Verdi
Nå kommer du et sted. Har du gjettet neste snarvei? Det er riktig. Hvis du vet at det første regnearket er det aktive regnearket, antar Excel den referansen og lar deg bare skrive
Område ("A1"). Verdi
I motsetning til hva enkelte kan tenke, har Excel ikke et Cell-objekt. En celle er bare en Range-objekt som består av bare ett element.
Kortene som beskrives her er flotte, men de kan også være farlige. Hva om du bare tenker Book1. xlsx er den aktive arbeidsboken? Du kan få en feil, eller verre, du kan få feil verdi og ikke engang innse at det er galt. Av den grunn er det ofte best å fullt ut kvalifisere objektreferanser.
Med With-End With-strukturen kan du fullt ut kvalifisere dine referanser, men bidrar også til å gjøre koden mer lesbar og kuttes ned på skrivingen. Det beste fra begge verdenene!