Oggetto VBA richiesto - Come risolvere l'errore richiesto dall'oggetto in Excel VBA?

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, allora è un lavoro molto facile correggere quegli errori senza sudare. Uno di questi errori nella codifica VBA è "Oggetto richiesto".

Se ricordi, durante l'apprendimento delle variabili e l'assegnazione dei tipi di dati a tali variabili, abbiamo anche i tipi di dati "Oggetto". Quando viene assegnato il tipo di dati dell'oggetto e se quell'oggetto non esiste nel foglio di lavoro o nella cartella di lavoro a cui ci riferiamo, avremmo il messaggio di errore VBA "Oggetto richiesto". Quindi, come nuovo programmatore, è comune dichiarare di essere presi dal panico in quelle situazioni perché, al livello di partenza, un principiante non riesce a trovare la causa di questo errore.

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

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

Ad 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 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, è necessario utilizzare la parola chiave "Set" per assegnare il riferimento dell'oggetto alla variabile, quindi nelle due righe successive, utilizzando la parola chiave "Set", ho ho assegnato il 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 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. Torna alla riga di codice precedente in cui 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 seguente.

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.

Articoli interessanti...