Inhoudsopgave:
Video: Linking Data from Microsoft Excel to a SolidWorks Model 2024
Verwijzen naar een object in je VBA-code is belangrijk omdat je het object moet identificeren waar je mee wilt werken in Excel 2016. VBA kan je gedachten immers nog niet lezen. Het gerucht gaat dat het mentale object in Excel 2019 wordt geïntroduceerd.
Je kunt in één keer met een hele verzameling objecten werken. Vaker moet u echter werken met een specifiek object in een verzameling (zoals een bepaald werkblad in een werkmap). Als u naar een enkel object uit een verzameling wilt verwijzen, plaatst u de naam van het object of het indexnummer tussen haakjes achter de naam van de verzameling, zoals deze:
Werkbladen ("Sheet1")
Merk op dat de bladnaam tussen aanhalingstekens staat. Als u de aanhalingstekens weglaat, kan Excel het object niet identificeren (en veronderstellen dat het een variabelenaam is).
Als Sheet1 het eerste (of enige) werkblad in de verzameling is, kunt u ook de volgende referentie gebruiken:
Worksheets (1)
In dit geval is het nummer niet in aanhalingstekens. Bottom line? Als u naar een object verwijst door de naam ervan te gebruiken, gebruikt u aanhalingstekens. Als u naar een object verwijst door het indexnummer te gebruiken, gebruikt u een gewoon cijfer zonder aanhalingstekens.
Hoe zit het met grafiekbladen? Een grafiekblad bevat één grafiek. Het heeft een bladtabblad, maar het is geen werkblad. Nou, zo blijkt, het objectmodel heeft een verzameling met de naam Grafieken. Deze verzameling bevat alle grafiekbladobjecten in een werkmap (en bevat geen diagrammen die zijn ingesloten in een werkblad).
En om de zaken logisch te houden, is er nog een verzameling met de naam Sheets. De verzameling Spreadsheets bevat alle werkbladen (werkbladen en grafiekbladen) in een werkmap. De collectie Sheets is handig als u met alle werkbladen in een werkmap wilt werken en het niet uitmaakt of het werkbladen of grafiekbladen zijn.
Een enkel werkblad genaamd Sheet1 is dus lid van twee collecties: de collectie Worksheets en de collectie Spreadsheets. U kunt er op twee manieren naar verwijzen:
Werkbladen ("Blad1") Werkbladen ("Blad1")
Navigeren door de hiërarchie
Als u met Excel-objecten wilt werken, staan ze allemaal onder de Applicatie object. Dus begin met het typen van Applicatie .
Elk ander object in het objectmodel van Excel bevindt zich onder het object Application. U krijgt toegang tot deze objecten door de hiërarchie omlaag te gaan en elk object op uw weg te verbinden met de punt (.) -operator. Om naar het werkboekobject met de naam Boek1 te gaan. xlsx, begin met het toepassingsobject en navigeer naar het verzamelobject Workbooks:
Toepassing.Werkmappen ("Book1. Xlsx")
Als u verder naar een specifiek werkblad wilt gaan, voegt u een puntoperator toe en opent u het collectieobject Objecten:
Toepassing. Werkmappen ("Book1. Xlsx"). Werkbladen (1)
Nog niet ver genoeg? Als u de waarde van cel A1 echt wilt weten op het eerste werkblad van de werkmap met de naam Boek1. xlsx, moet u nog een niveau navigeren naar het Range-object:
Toepassing. Werkmappen ("Book1. Xlsx"). Werkbladen (1). Range (“A1”). Waarde
Wanneer u op deze manier naar een bereikobject verwijst, wordt dit een volledig gekwalificeerde verwijzing genoemd. U hebt Excel precies laten weten welk bereik u wilt, op welk werkblad en in welke werkmap, en u hebt niets aan de verbeelding overgelaten. Verbeelding is goed in mensen, maar niet zo goed in computerprogramma's.
Overigens hebben werkboeknamen ook een punt om de bestandsnaam van de extensie te scheiden (bijvoorbeeld Book1. Xlsx). Dat is gewoon toeval. De punt in een bestandsnaam heeft helemaal niets te maken met de puntoperator.
Vereenvoudiging van objectverwijzingen
Als u alle objectreferenties die u maakt volledig zou moeten kwalificeren, zou uw code behoorlijk lang worden en zou het moeilijker zijn om te lezen. Gelukkig biedt Excel u een aantal snelkoppelingen die de leesbaarheid kunnen verbeteren (en u wat typen besparen). Om te beginnen wordt altijd het Application-object verondersteld. Er zijn slechts een paar gevallen waarin het zinvol is om het te typen. Het weglaten van de referentie van het toepassingsobject verkort het voorbeeld tot
werkmappen ("Book1. Xlsx"). Werkbladen (1). Range (“A1”). Waarde
Dat is een behoorlijk goede verbetering. Maar wacht, er is meer. Als je zeker bent dat Book1. xlsx is de actieve werkmap, u kunt die verwijzing ook weglaten. Nu komt u neer op
werkbladen (1). Range (“A1”). Waarde
Nu kom je ergens. Heb je de volgende snelkoppeling geraden? Dat is juist. Als u weet dat het eerste werkblad het momenteel actieve werkblad is, neemt Excel die verwijzing over en kunt u alleen
Bereik ("A1") typen. Waarde
In tegenstelling tot wat sommige mensen denken, heeft Excel geen Cell-object. Een cel is gewoon een bereikobject dat uit slechts één element bestaat.
De snelkoppelingen die hier worden beschreven zijn geweldig, maar ze kunnen ook gevaarlijk zijn. Wat als u alleen denkt Book1. xlsx is de actieve werkmap? Je zou een fout kunnen krijgen, of erger nog, je zou de verkeerde waarde kunnen krijgen en niet eens beseffen dat het verkeerd is. Om die reden is het vaak het beste om uw objectreferenties volledig te kwalificeren.
De With-End With-structuur helpt u uw referenties volledig te kwalificeren, maar helpt ook om de code leesbaarder te maken en het typen te verminderen. Het beste van beide werelden!