Obiect VBA necesar - Cum se remediază eroarea necesară obiectului în Excel VBA?

Obiect necesar în Excel VBA

Greșelile fac parte integrantă din limbajul de codare, dar adevăratul geniu constă în găsirea erorii și remedierea acestor erori. Primul pas în remedierea acestor erori este inteligența de a afla de ce apar aceste erori. Dacă puteți afla de ce apar acele erori, atunci este o treabă foarte ușoară să remediați acele erori fără a vă spăla. O astfel de eroare în codarea VBA este „Obiect obligatoriu”.

Dacă vă amintiți, în timp ce învățați variabile și atribuiți tipuri de date acelor variabile, avem și tipuri de date „Obiect”. Când se atribuie tipul de date obiect și dacă acel obiect nu există în foaia de lucru sau în registrul de lucru la care ne referim, vom primi mesajul de eroare VBA ca „Obiect obligatoriu”. Deci, ca un nou programator, este obișnuit să stai în panică în acele situații, deoarece, la nivelul inițial, un începător nu poate găsi cauza acestei erori.

De ce apare eroarea necesară obiectului? (și … Cum se remediază?)

Ok, este nevoie de două sau trei exemple pentru a înțelege cu adevărat de ce apare această eroare și cum să o remediați.

De exemplu, uitați-vă la codul de mai jos.

Cod:

Sub Last_Row () Dim Wb Ca registru de lucru Dim Ws ca foaie de lucru Dim MyToday as Data Set Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Data") Set MyToday = Wb.Ws.Cells (1, 1) MsgBox MyToday End Sub

Permiteți-mi să vă explic codul de mai sus pentru dvs.

Am declarat trei variabile, iar primele două variabile se referă la obiectele „Caiet de lucru” și „Foaie de lucru”. A treia variabilă se referă la tipul de date „Data”.

Când tipurile de date „Obiect” sunt atribuite variabilei, trebuie să folosim cuvântul „Set” pentru a atribui referința obiectului variabilei, deci în următoarele două linii, folosind cuvântul cheie „Set”, I am atribuit referința „ThisWorkbook” la variabila „Wb” deoarece această variabilă deține tipul de date obiect ca „Workbook”, iar pentru variabila „Ws” am atribuit obiectul foii de lucru a foii de lucru „Data” din acest registru de lucru.

Setați Wb = ThisWorkbook
Set Ws = ThisWorkbook.Worksheets ("Data")
  • În rândul următor pentru variabila de tip „Data”, de asemenea, am folosit cuvântul cheie „Set” pentru a atribui valoarea celulei A1 din acest registru de lucru (Wb) și în foaia de lucru „Data” (Ws).
Setați MyToday = Wb.Ws.Cells (1, 1)
  • În rândul următor, afișăm valoarea variabilei „MyDate” a valorii celulei A1 în caseta de mesaj din VBA.
MsgBox MyToday
  • Ok, să rulăm acest cod și să vedem ce obținem ca rezultat.

După cum puteți vedea mai sus, acesta afișează mesajul de eroare VBA ca „Obiect necesar”. Ok, este timpul să examinăm de ce primim acest mesaj de eroare.

  • În imaginea mesajului de eroare de mai sus din secțiunea cod, în timp ce afișează mesajul de eroare, a evidențiat partea de eroare a codului cu culoare albastră.
  • Deci, rămâne întrebarea de ce am primit această eroare. Primul lucru pe care trebuie să îl vedem este acest tip de date variabil special. Reveniți la linia de cod anterioară unde am atribuit tipul de date variabilei „Data mea”.
  • Am atribuit tipul de date variabil ca „Data” și acum revenim la linia de eroare acum.

În această linie, am folosit cuvântul cheie „Set”, în timp ce tipul nostru de date nu este tipul de date „Obiect”. Deci, în momentul în care codul VBA vede cuvântul cheie „Set”, presupune că este un tip de date obiect și spune că necesită o referință obiect.

Deci, linia de jos este cuvântul cheie „Set” este folosit pentru a face referire doar la referința la variabilele obiect precum Foaia de lucru, Registrul de lucru etc.

Exemplul nr. 1

Acum aruncați o privire la codul de mai jos.

Cod:

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

În codul de mai sus, am folosit funcția foaie de lucru „SUMA” pentru a obține totalul valorilor celulei de la A1 la A100. Când rulați acest cod, vom întâlni eroarea de mai jos.

Hopa !! Se spune: „Eroare în timpul rulării„ 424 ”: obiect necesar.

Acum să privim cu atenție codul acum.

În loc să folosim „Aplicație”, am folosit din greșeală „Aplicație1”, astfel încât aceasta a întâmpinat eroarea „Obiect necesar” în codul VBA.

Dacă cuvântul „Opțiune explicită” este activat, atunci vom primi eroarea „Variabilă nedefinită”.

Lucruri de amintit

  • Obiect obligatoriu înseamnă că referința tipului de date obiect trebuie să fie exactă.
  • Când opțiunea cuvânt explicit nu este activată în codare, atunci vom primi o eroare obiect necesară pentru cuvintele variabile greșit ortografiate și, dacă opțiunea Explicit opțiune este activată, vom primi eroarea variabilă nedefinită pentru cuvintele variabile greșit ortografiate.

Articole interesante...