Objekt som krävs Felöversikt
Denna handledning hjälper dig att felsöka objekt som krävs i VBA.
<
<
Objektöversikt
I VBA är ett objekt en "sak" som ett kalkylblad, arbetsbok, intervall, form, rad, kolumn, användarform, kontroll, etc.
Objekt har egenskaper (ex: namn, färg, dold) och metoder (ex: öppna, rensa, spara, göm). Om du försöker tillämpa en egenskap eller metod behöver VBA ett giltigt objekt för att tillämpa egenskaperna eller metoderna.
Om du inte tillhandahåller ett giltigt objekt får du Objekt krävs fel.
Den här guiden hjälper dig att felsöka objekt som krävs fel.
#1. Alternativ Explicit / Felstavat variabelnamn
Kontrollera först om du har stavat objektnamnet fel. Ett felstavat namn kan orsaka objektet Required Error.
Detta kan hända med befintliga objektnamn:
<>
Eller med variabelnamn:
<>
Ett bra sätt att förhindra felstavade variabelnamn är att se till att du förklarar alternativet Explicit högst upp i kodmodulen.
1 | Alternativ Explicit |
Alternativ Explicit tvingar dig att deklarera dina variabler. När du nu felsöker <> din kod får du ett meddelande om att du behöver definiera din variabel:
<>
Detta bör hjälpa dig att förstå att variabeln är felstavad.
VBA -programmering | Kodgenerator fungerar för dig!
#2 Variabla uppdrag
Se sedan till att du har tilldelat dina variabler korrekt.
Objektvariabler måste tilldelas med Set Object =: <>
< Om du inte använder Set för objektvariabeltilldelningar får du objektet Required Object. <> På samma sätt bör icke-objektvariabler tilldelas utan Set: <> Om du försöker använda Set på en icke-objektvariabel får du objektet Required Object. <> Finns din kod i en modul på arbetsbladsnivå? I så fall måste du vara extra försiktig när du hänvisar till namngivna intervall i andra kalkylblad. Till exempel kan du ha ett arbetsbok-nivå med namnet "Datum", i en vanlig kodmodul kan du referera till det namngivna intervallet så här: Men om du refererar till det namngivna intervallet från en modul på kalkylbladsnivå måste du uttryckligen definiera det kalkylblad där det namngivna intervallet ligger: Annars stöter du på ett fel: <>>
#3 Moduler på arbetsbladsnivå
1 MsgBox Range ("Datum"). Värde
1 MsgBox Sheets ("Sheet2"). Intervall ("Date"). Värde