Objekt påkrevd feiloversikt
Denne opplæringen hjelper deg med å feilsøke objektkrevde feil i VBA.
<
<
Oversikt over objekter
I VBA er et objekt en "ting" som et regneark, arbeidsbok, område, form, rad, kolonne, brukerform, kontroll, etc.
Objekter har egenskaper (eks: navn, farge, skjult) og metoder (eks: åpne, slett, lagre, skjul). Hvis du prøver å bruke en eiendom eller metode, trenger VBA et gyldig objekt for å bruke egenskapene eller metodene.
Hvis du ikke oppgir et gyldig objekt, får du Objekt påkrevd feil.
Denne veiledningen hjelper deg med å feilsøke feil på objektet.
#1. Alternativ Eksplisitte / feilstavede variabelnavn
Sjekk først om du har stavet objektnavnet feil. Et feilstavet navn kan forårsake objektet påkrevd feil.
Dette kan skje med eksisterende objektnavn:
<>
Eller med variabelnavn:
<>
En god måte å forhindre navn på feilstavede variabler på er å sørge for at du erklærer Option Explicit øverst i kodemodulen.
1 | Alternativ Eksplisitt |
Option Explicit tvinger deg til å deklarere variablene dine. Når du feilsøker <> koden din, får du en melding om at du trenger å definere variabelen din:
<>
Dette bør hjelpe deg med å vite at variabelen er feilstavet.
VBA -programmering | Kodegenerator fungerer for deg!
#2 Variable Oppgaver
Deretter må du kontrollere at du har tilordnet variablene dine riktig.
Objektvariabler må tildeles ved å bruke Set Object =: <>
< Hvis du ikke bruker Set for objektvariabeltildelinger, får du feilen Object Required. <> På samme måte bør ikke-objektvariabler tilordnes uten sett: <> Hvis du prøver å bruke Set på en variabel som ikke er objekt, får du feilen Object Required. <> Er koden din i et regnearknivå? I så fall må du være ekstra forsiktig når du refererer til navngitte områder i andre regneark. For eksempel kan du ha et arbeidsbok-nivå med navnet "Dato", i en vanlig kodemodul kan du referere til det navngitte området slik: Hvis du imidlertid refererer til det navngitte området fra en modul på regnearknivå, må du eksplisitt definere regnearket der det navngitte området er plassert: Ellers støter du på en feil: <>>
#3 Arbeidsark-nivå moduler
1 MsgBox Range ("Dato"). Verdi
1 MsgBox Sheets ("Sheet2"). Område ("Date"). Verdi