Oggetto VBA richiesto

Oggetto richiesto in Excel VBA

Gli errori sono parte integrante del linguaggio di programmazione, ma il vero genio sta nel trovare l'errore e nel correggerli. Il primo passo per correggere tali errori è l'intelligenza di scoprire perché si verificano tali errori. Se riesci a scoprire perché si verificano questi errori, è un lavoro molto facile correggerli senza sudare. Uno di questi errori nella codifica VBA è "Oggetto richiesto".

Se ti ricordi mentre impari le variabili e assegni i tipi di dati a quelle variabili, abbiamo anche i tipi di dati "Oggetto". Quando il tipo di dati oggetto assegnato e se tale oggetto non esiste nel foglio di lavoro o nella cartella di lavoro a cui ci riferiamo, avremmo ricevuto il messaggio di errore VBA come "Oggetto richiesto" . Quindi, come nuovo programmatore, è comune dichiarare di essere presi dal panico in quelle situazioni perché al livello di partenza il principiante non riesce a trovare la causa di questo errore.

Perché si verifica l'errore richiesto dall'oggetto? (e ... come risolverlo?)

Ok, sono necessari due o tre esempi per capire davvero perché si verifica questo errore e come risolverlo.

Puoi scaricare questo modello Excel richiesto per oggetti VBA qui - Modello Excel richiesto per oggetti VBA

Per un esempio, guarda il codice seguente.

Codice:

 Sub Last_Row () Dim Wb As Workbook Dim Ws As Worksheet Dim MyToday As Date Set Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Data") Set MyToday = Wb.Ws.Cells (1, 1) MsgBox MyToday End Sub 

Lascia che ti spieghi il codice sopra per te.

Ho dichiarato tre variabili e le prime due variabili si riferiscono agli oggetti "Cartella di lavoro" e "Foglio di lavoro". La terza variabile si riferisce al tipo di dati "Data".

Quando i tipi di dati "Oggetto" sono assegnati alla variabile dobbiamo utilizzare la parola "Imposta" per assegnare il riferimento dell'oggetto alla variabile, quindi nelle due righe successive utilizzando la parola chiave "Imposta" ho assegnato la riferimento di “ThisWorkbook” alla variabile “Wb” perché questa variabile contiene il tipo di dati dell'oggetto come “Workbook” e per la variabile “Ws” ho assegnato l'oggetto del foglio di lavoro del foglio di lavoro “Data” in questa cartella di lavoro.

 Imposta Wb = ThisWorkbook
 Imposta Ws = ThisWorkbook.Worksheets ("Data")
  • Nella riga successiva per la variabile del tipo di dati "Data" inoltre ho utilizzato la parola chiave "Set" per assegnare il valore del valore della cella A1 in questa cartella di lavoro (Wb) e nel foglio di lavoro "Dati" (Ws).
 Imposta MyToday = Wb.Ws.Cells (1, 1)
  • Nella riga successiva, stiamo mostrando il valore del valore della variabile "MyDate" del valore della cella A1 nella finestra di messaggio in VBA.
MsgBox MyToday
  • Ok, eseguiamo questo codice e vediamo cosa otteniamo come risultato.

Come puoi vedere sopra, mostra il messaggio di errore VBA come "Oggetto richiesto" . Ok, è tempo di esaminare il motivo per cui riceviamo questo messaggio di errore.

  • Nell'immagine del messaggio di errore sopra nella sezione del codice, mentre mostrava il messaggio di errore, ha evidenziato la parte di errore del codice con il colore blu.

  • Quindi, la domanda rimane è perché abbiamo ricevuto questo errore. La prima cosa che dobbiamo vedere è questo particolare tipo di dati variabile. Tornare alla riga di codice precedente dove abbiamo assegnato il tipo di dati alla variabile “MyDate”.

  • Abbiamo assegnato il tipo di dati della variabile come "Data" e ora torniamo alla riga di errore.

In questa riga, abbiamo utilizzato la parola chiave "Set" mentre il nostro tipo di dati non è il tipo di dati "Object". Quindi, nel momento in cui il codice VBA vede la parola chiave "Set", presume che sia un tipo di dati oggetto e dice che richiede un riferimento a un oggetto.

Quindi, la linea di fondo è la parola chiave "Set" utilizzata per fare riferimento solo a variabili oggetto come foglio di lavoro, cartella di lavoro, ecc ...

Esempio 1

Ora dai un'occhiata al codice sottostante.

Codice:

 Sub Object_Required_Error () Range ("A101"). Value = Application1.WorksheetFunction.Sum (Range ("A1: A100")) End Sub 

Nel codice sopra, abbiamo utilizzato la funzione del foglio di lavoro "SUM" per ottenere il totale dei valori delle celle da A1 a A100. Quando esegui questo codice, riscontreremo l'errore di seguito.

Oops !! Dice "Errore di runtime" 424 ": oggetto richiesto.

Ora esaminiamo attentamente il codice ora.

Invece di utilizzare "Applicazione" abbiamo erroneamente utilizzato "Applicazione1", quindi questo ha riscontrato l'errore di "Oggetto richiesto" nel codice VBA.

Se la parola "Opzione esplicita" è abilitata, verrà visualizzato l'errore "Variabile non definita".

Cose da ricordare

  • Oggetto richiesto significa che il riferimento al tipo di dati dell'oggetto deve essere accurato.
  • Quando l'opzione parola esplicita non è abilitata nella codifica, otterremo l'errore Oggetto richiesto per parole variabili con errori di ortografia e se l'opzione esplicita è abilitata otterremo l'errore variabile non definita per parole variabili con errori di ortografia.