Es requereix un objecte VBA | Com es corregeix l’error necessari de l’objecte a Excel VBA?

Objecte necessari a Excel VBA

Els errors formen part del llenguatge de codificació, però el veritable geni rau a trobar l’error i solucionar-los. El primer pas per solucionar aquests errors és la intel·ligència de saber per què es produeixen aquests errors. Si podeu saber per què es produeixen aquests errors, és molt fàcil corregir aquests errors sense trencar la suor. Un d'aquests errors en la codificació VBA és "Objecte obligatori".

Si recordeu que apreníeu variables i assigneu tipus de dades a aquestes variables, també tenim tipus de dades "Object". Quan s’assigni el tipus de dades de l’objecte i si aquest objecte no existeix al full de treball o al llibre de treball, estem rebent el missatge d’error VBA com a "Objecte obligatori". Per tant, com a nou programador, és freqüent afirmar entrar en pànic en aquestes situacions, ja que al nivell inicial el principiant no pot trobar la causa d’aquest error.

Per què es produeix un error objecte requerit? (i ... Com solucionar-ho?)

D'acord, calen dos o tres exemples per entendre realment per què es produeix aquest error i com solucionar-lo.

Podeu descarregar aquesta plantilla Excel necessària d'objectes VBA aquí - Plantilla Excel necessària d'objectes VBA

Per obtenir un exemple, mireu el codi següent.

Codi:

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

Permeteu-me que us expliqui el codi anterior.

He declarat tres variables i les dues primeres variables fan referència als objectes "Llibre de treball" i "Full de treball". La tercera variable fa referència al tipus de dades "Data".

Quan s’assignen els tipus de dades “Objecte” a la variable, hem d’utilitzar la paraula “Establir” per assignar la referència de l’objecte a la variable, de manera que a les dues línies següents utilitzant la paraula clau “Establir” he assignat la referència de "ThisWorkbook" a la variable "Wb" perquè aquesta variable manté el tipus de dades d'objecte com a "Workbook" i per a la variable "Ws" he assignat l'objecte del full de treball del full de treball "Data" en aquest llibre.

 Estableix Wb = ThisWorkbook
 Establir Ws = ThisWorkbook.Worksheets ("Dades")
  • A la següent línia de la variable de tipus de dades "Data" també he utilitzat la paraula clau "Establir" per assignar el valor del valor A1 de la cel·la en aquest llibre (Wb) i al full de treball "Dades" (Ws).
 Estableix MyToday = Wb.Ws.Cells (1, 1)
  • A la següent línia, mostrem el valor del valor de la variable "La meva data" del valor de la cel·la A1 al quadre de missatges de VBA.
MsgBox MyToday
  • D’acord, executem aquest codi i veurem el que obtenim com a resultat.

Com podeu veure més amunt, mostra el missatge d'error VBA com "Objecte obligatori". D'acord, és hora d'examinar per què rebem aquest missatge d'error.

  • A la imatge del missatge d'error anterior a la secció de codi mentre es mostra el missatge d'error, ha ressaltat la part d'error del codi amb color blau.

  • Per tant, queda la pregunta per què hem rebut aquest error. El primer que hem de veure és aquest tipus de dades variables particulars. Torneu a la línia de codi anterior on hem assignat el tipus de dades a la variable "La meva data".

  • Hem assignat el tipus de dades variables com a "Data" i ara tornem a la línia d'error.

En aquesta línia, hem utilitzat la paraula clau "Establir", mentre que el nostre tipus de dades no és el tipus de dades "Objecte". Així, en el moment que el codi VBA veu la paraula clau "Establir", assumeix que és un tipus de dades d'objecte i diu que requereix una referència d'objecte.

Per tant, la conclusió és que es defineix la paraula clau "Establir" només per referir-se a les variables d'objecte com ara Full de treball, Llibre de treball, etc.

Exemple 1

Ara mireu el codi següent.

Codi:

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

Al codi anterior, hem utilitzat la funció de full de càlcul "SUM" per obtenir el total dels valors de la cel·la de A1 a A100. Quan executeu aquest codi, ens trobarem a continuació amb un error.

Vaja! Es diu "Error en temps d'execució" 424 ": objecte obligatori.

Ara mirem de prop el codi ara.

En lloc d'utilitzar "Aplicació", hem utilitzat per error "Aplicació1", de manera que s'ha produït l'error "Objecte requerit" al codi VBA.

Si la paraula "Opció explícita" està activada, obtindrem l'error "Variable no definit".

Coses que cal recordar

  • Objecte obligatori: la referència al tipus de dades d'objecte ha de ser exacta.
  • Quan l'opció paraula explícita no estigui habilitada a la codificació, obtindrem l'error objecte requerit per a les paraules variables mal escrites i, si l'opció Explicit està activada, obtindrem la variable no definida per a les paraules variables mal escrites.