Indholdsfortegnelse:
Video: Top 15 Advanced Excel 2016 Tips and Tricks 2024
Det er vigtigt at henvise til et objekt i din VBA-kode, fordi du skal identificere objektet som du vil arbejde sammen med i Excel 2016. Tross alt kan VBA ikke læse dit sind - alligevel. Det er rygter om, at mind-reading-objektet vil blive introduceret i Excel 2019.
Du kan arbejde med en hel samling objekter i et fald. Oftere skal du imidlertid arbejde med et bestemt objekt i en samling (f.eks. Et bestemt regneark i en projektmappe). For at referere til en enkelt genstand fra en samling, sætter du objektets navn eller indeksnummer i parentes efter navnet på samlingen, som denne:
Regneark ("Sheet1")
Bemærk, at arkets navn er anførselstegn. Hvis du udelader citatmærkerne, kan Excel ikke identificere objektet (og antager, at det er et variabelt navn).
Hvis Sheet1 er det første (eller eneste) regneark i samlingen, kan du også bruge følgende reference:
Regneark (1)
I dette tilfælde er tallet ikke i anførselstegn. Bundlinie? Hvis du henviser til et objekt ved at bruge sit navn, skal du bruge citatmærker. Hvis du henviser til et objekt ved at bruge sit indeksnummer, skal du bruge et almindeligt nummer uden anførselstegn.
Hvad med diagramark? Et diagramark indeholder et enkelt diagram. Den har en arkfane, men det er ikke et regneark. Nå, som det viser sig, har objektmodellen en samling kaldet Diagrammer. Denne samling indeholder alle diagramarkobjekterne i en projektmappe (og indeholder ikke diagrammer, der er indlejret i et regneark).
Og for at holde tingene logiske, er der en anden samling kaldet Sheets. Arket Ark indeholder alle ark (regneark og diagramark) i en projektmappe. Arket Ark er praktisk, hvis du vil arbejde med alle ark i en projektmappe og er ligeglad med, om de er regneark eller diagramark.
Så et enkelt regneark, der hedder Sheet1, er medlem af to samlinger: Worksheets collection og Sheets collection. Du kan henvise til det på to måder:
Regneark ("Sheet1") Ark ("Sheet1")
Navigere gennem hierarkiet
Hvis du vil arbejde med Excel-objekter, er de alle under Applikationsobjekt. Så start med at skrive Application .
Hvert andet objekt i Excels objektmodel er under applikationsobjektet. Du kommer til disse objekter ved at flytte ned hierarkiet og forbinde hvert objekt på vej med dot (.) Operatøren. For at komme til Workbook-objektet hedder Book1. xlsx, start med applikationsobjektet og naviger ned til indsamlingobjektet Workbooks:
Application.Arbejdsbøger ("Book1.xlsx")
For at navigere længere til et bestemt regneark skal du tilføje en prikoperatør og få adgang til samlingsobjektet Regneark:
Applikation. Workbooks ("Book1. Xlsx"). Regneark (1)
Ikke langt nok endnu? Hvis du virkelig ønsker at få værdien fra celle A1 på det første Arbejdsark i Workbook med navnet Book1. xlsx, du skal navigere endnu et niveau til Range objektet:
Application. Workbooks ("Book1. Xlsx"). Regneark (1). Range (”A1”). Værdi
Når du henviser til et områdeobjekt på denne måde, kaldes det en fuldt kvalificeret reference. Du har fortalt Excel præcis hvilket interval du vil have, på hvilket regneark og i hvilken arbejdsbog, og du har ikke forladt fantasien. Imagination er god i folk, men ikke så god i computerprogrammer.
Til gengæld har workbooknavne også en prik for at adskille filnavnet fra udvidelsen (f.eks. Book1. Xlsx). Det er bare et tilfælde. Prikken i et filnavn har slet ikke noget at gøre med dot operatoren.
Forenkling af objektreferencer
Hvis du var forpligtet til fuldt ud at kvalificere hver objektreference, du laver, vil din kode blive ret lang, og det kan være sværere at læse. Heldigvis giver Excel dig nogle genvejstaster, der kan forbedre læsbarheden (og gemme dig til at skrive). For det første antages applikationsobjektet altid. Der er kun få tilfælde, hvor det giver mening at skrive det. At udelade referencen Applikationsobjekt forkorter eksemplet til
Workbooks ("Book1. Xlsx"). Regneark (1). Range (”A1”). Værdi
Det er en ret god forbedring. Men vent, der er mere. Hvis du er sikker på, at Book1. xlsx er den aktive arbejdsbog, du kan udelade denne reference også. Nu er du nede på
Regneark (1). Range (”A1”). Værdi
Nu kommer du et sted. Har du gættet den næste genvej? Det er rigtigt. Hvis du ved, at det første regneark er det aktuelt aktive regneark, forudsætter Excel denne reference og giver dig mulighed for bare at skrive
Område ("A1"). Værdi
I modsætning til hvad nogle mennesker måske tror, har Excel ikke et Cell-objekt. En celle er simpelthen en Range objekt, der består af kun ét element.
De her beskrevne genveje er store, men de kan også være farlige. Hvad hvis du kun tænker Book1. xlsx er den aktive arbejdsbog? Du kan få en fejl, eller værre, du kan få den forkerte værdi og ikke engang indse, at det er forkert. Derfor er det ofte bedst at kvalificere dine objektreferencer fuldt ud.
Med With-End With-strukturen hjælper du dig fuldt ud med at kvalificere dine referencer, men hjælper også med at gøre koden mere læsbar og nedskæres ved skrivningen. Det bedste fra begge verdener!