Verwijzen naar een werkblad met objectvariabele - Excel-tips

Inhoudsopgave

Joe probeert een fout op te lossen in een nieuwe macro die hij zojuist heeft geschreven.

De regel die NextRow toewijst, retourneert een fout die zegt "Objectvariabele of met blokvariabele niet ingesteld".

Objectvariabelen zijn best gaaf. In de oude tips bij zou ik de reguliere variabele zoals deze gebruiken:

OrigName = ActiveSheet.Name Worksheets(OrigName).Copy

Er is een betere manier. U kunt een variabele definiëren als een willekeurig object, zoals een werkblad. Dit heeft verschillende voordelen. Het is korter om de objectvariabele te gebruiken in plaats van Worksheets (OrigName). Terwijl u code typt, weet VBA ook dat de variabele een werkblad is en biedt het de juiste eigenschappen en methoden nadat u de punt hebt getypt. Hier is de nieuwe code:

Dim WSO as Worksheet Set WSO = Activesheet WSO.Copy

De truc is echter dat wanneer je een objectvariabele hebt, deze moet worden toegewezen met het sleutelwoord Set. Als u de Set niet in de code plaatst, krijgt u de ietwat niet-intuïtieve "Objectvariabele of met blokvariabele niet ingesteld". Joe hoeft alleen maar het woord Set vooraf te laten gaan aan zijn variabeletoekenning.

Interessante artikelen...