Innehållsförteckning:
Video: Top 25 Excel 2016 Tips and Tricks 2024
Hänvisning till ett objekt i din VBA-kod är viktigt eftersom du måste identifiera objektet som du vill arbeta med i Excel 2016. Trots allt kan VBA inte läsa ditt sinne - ändå. Det är rykt om att sinnläsningsobjektet kommer att introduceras i Excel 2019.
Du kan arbeta med en hel samling objekt i ett fall. Ofta måste du dock arbeta med ett specifikt objekt i en samling (som ett särskilt arbetsblad i en arbetsbok). För att referera till ett enskilt objekt från en samling sätter du objektets namn eller indexnummer inom parentes efter namnet på samlingen, så här:
Arbetsblad ("Sheet1")
Observera att arkets namn är i citattecken. Om du släpper citattecken kommer Excel inte att kunna identifiera objektet (och antar att det är ett variabelt namn).
Om Sheet1 är det första (eller enda) arbetsbladet i samlingen kan du också använda följande referens:
Arbetsblad (1)
I det här fallet är siffran inte i citattecken. Slutsats? Om du hänvisar till ett objekt genom att använda sitt namn, använd citattecken. Om du hänvisar till ett objekt genom att använda sitt indexnummer, använd ett vanligt nummer utan citattecken.
Vad sägs om diagramblad? Ett diagramblad innehåller ett enda diagram. Den har en flikark, men det är inte ett kalkylblad. Tja, som det visar sig, har objektmodellen en samling som heter Charts. Denna samling innehåller alla kartobjektobjekt i en arbetsbok (och innehåller inte kartor inbäddade i ett arbetsblad).
Och för att hålla sakerna logiska finns det en annan samling som heter Sheets. Insamling av ark innehåller alla lakan (arbetsblad och diagramblad) i en arbetsbok. Insamling av ark är praktisk om du vill arbeta med alla bladen i en arbetsbok och bryr dig inte om de är arbetsblad eller diagramblad.
Så ett enda kalkylblad med namnet Sheet1 är en medlem av två samlingar: kalkylbladets samling och arkskivan. Du kan referera till det på två sätt:
Kalkylblad ("Sheet1") Ark ("Sheet1")
Navigera genom hierarkin
Om du vill arbeta med Excel-objekt, är de alla under Applikationsobjekt. Börja med att skriva Application .
Varje annat objekt i Excels objektmodell ligger under Applikationsobjektet. Du kommer till dessa objekt genom att flytta ner hierarkin och ansluta varje objekt på väg med dot (.) -operatören. För att komma till Arbetsboksobjektet med namnet Book1. xlsx, börja med Applikationsobjektet och naviger ner till Arbetsboksens samlingsobjekt:
Applikation.Arbetsböcker ("Book1. Xlsx")
För att navigera längre till ett specifikt arbetsblad lägger du till en prickoperatör och öppnar Verktygsuppsamlingsobjektet:
Application. Arbetsböcker ("Book1. Xlsx"). Arbetsblad (1)
Inte tillräckligt långt än? Om du verkligen vill få värdet från cell A1 på det första arbetsbladet i arbetsboken heter Book1. xlsx, du måste navigera ytterligare en nivå till Range-objektet:
Application. Arbetsböcker ("Book1. Xlsx"). Kalkylblad (1). Range (”A1”). Värde
När du hänvisar till ett områdeobjekt på detta sätt kallas det en fullt kvalificerad referens. Du har berättat exakt exakt vilken rad du vill ha, vilket arbetsblad och vilken arbetsbok, och har inte lämnat något för fantasin. Fantasi är bra hos människor men inte så bra i datorprogram.
Förresten har arbetsbokens namn också en punkt som skiljer filnamnet från tillägget (till exempel Book1. Xlsx). Det är bara en slump. Punten i ett filnamn har inget alls att göra med prickoperatören.
Förenkla objektreferenser
Om du var skyldig att fullt ut kvalificera varje objektreferens du gör kommer din kod att bli ganska lång, och det kan vara svårare att läsa. Lyckligtvis ger Excel dig några genvägar som kan förbättra läsbarheten (och spara lite skrivning). Till att börja med antas alltid applikationsobjektet. Det är bara några få fall då det är vettigt att skriva det. Om du misslyckas med referens för Applikationsobjekt förkortas exemplet till
Arbetsböcker ("Book1. Xlsx"). Kalkylblad (1). Range (”A1”). Värde
Det är en ganska bra förbättring. Men vänta, det finns mer. Om du är säker på att Book1. xlsx är den aktiva arbetsboken, du kan också släppa bort den referensen. Nu är du nere till
kalkylblad (1). Range (”A1”). Värde
Nu kommer du någonstans. Har du gissat nästa genväg? Det är rätt. Om du vet att det första kalkylbladet är det aktuella aktiva kalkylbladet, antar Excel den referensen och låter dig bara skriva
Område ("A1"). Värde
I motsats till vad vissa människor kanske tror, har Excel inte ett Cell-objekt. En cell är helt enkelt ett Range-objekt som består av bara ett element.
De genvägar som beskrivs här är bra, men de kan också vara farliga. Vad händer om du bara tycker Book1. xlsx är den aktiva arbetsboken? Du kan få ett fel, eller värre, du kan få felaktigt värde och inte ens inser att det är fel. Därför är det ofta bäst att fullt ut kvalificera dina objektreferenser.
Med With-End With-strukturen kan du fullt ut kvalificera dina referenser men hjälper också till att göra koden mer läsbar och skär ner på skrivningen. Det bästa av båda världar!