Overzicht van object vereiste fouten
Deze zelfstudie helpt u bij het oplossen van Object Vereiste Fouten in VBA.
<
<
Objectenoverzicht
In VBA is een object een "ding" zoals een werkblad, werkmap, bereik, vorm, rij, kolom, gebruikersformulier, besturingselement, enz.
Objecten hebben eigenschappen (exs: naam, kleur, hidden) en methoden (exs: open, clear, save, hide). Als u probeert een eigenschap of methode toe te passen, heeft VBA een geldig object nodig waarop de eigenschappen of methoden kunnen worden toegepast.
Als u geen geldig object opgeeft, ontvangt u de Object vereiste fout.
Deze handleiding helpt u bij het oplossen van Object Vereiste Fouten.
#1. Optie Expliciete/verkeerd gespelde namen van variabelen
Controleer eerst of u de objectnaam verkeerd hebt gespeld. Een verkeerd gespelde naam kan de Object Required Error veroorzaken.
Dit kan gebeuren met bestaande objectnamen:
<>
Of met variabele namen:
<>
Een goede manier om verkeerd gespelde variabelennamen te voorkomen, is ervoor te zorgen dat u Option Explicit bovenaan uw codemodule declareert.
1 | Optie expliciet |
Option Explicit dwingt u om uw variabelen te declareren. Wanneer u nu <> uw code debugt, ontvangt u een bericht dat u uw variabele moet definiëren:
<>
Dit zou je moeten helpen om erachter te komen dat die variabele verkeerd is gespeld.
VBA-programmering | Code Generator werkt voor u!
#2 Variabele toewijzingen
Zorg er vervolgens voor dat u uw variabelen correct hebt toegewezen.
Objectvariabelen moeten worden toegewezen met behulp van Set Object = : <>
< Als u Set niet gebruikt voor toewijzingen van objectvariabelen, ontvangt u de fout Object vereist. <> Evenzo moeten niet-objectvariabelen worden toegewezen zonder Set: <> Als u Set probeert te gebruiken voor een niet-objectvariabele, ontvangt u de fout Object vereist. <> Staat uw code in een module op werkbladniveau? Als dat het geval is, moet u extra voorzichtig zijn bij het verwijzen naar benoemde bereiken op andere werkbladen. U hebt bijvoorbeeld een bereik op werkmapniveau met de naam "Datum", in een normale codemodule kunt u als volgt naar het benoemde bereik verwijzen: Als u echter vanuit een module op werkbladniveau naar het benoemde bereik verwijst, moet u expliciet het werkblad definiëren waar het benoemde bereik zich bevindt: Anders kom je een fout tegen: <>>
#3 Modules op werkbladniveau
1 MsgBox-bereik ("Datum").waarde
1 MsgBox Sheets("Blad2").Bereik("Datum").waarde