Kinakailangan ang Bagay ng VBA | Paano Ayusin ang Kinakailangan na Bagay na Error sa Excel VBA?

Kinakailangan ng Bagay sa Excel VBA

Ang mga pagkakamali ay bahagi at bahagi ng wika ng pag-coding ngunit ang tunay na henyo ay namamalagi sa paghahanap ng error at pag-aayos ng mga error na iyon. Ang unang hakbang sa pag-aayos ng mga error na iyon ay ang katalinuhan ng paghanap kung bakit nangyayari ang mga error na iyon. Kung mahahanap mo kung bakit darating ang mga pagkakamali sa gayon napakadaling trabaho upang ayusin ang mga error na iyon nang hindi binabali ang pawis. Ang isang tulad ng error sa pag-coding ng VBA ay "Kinakailangan ng Bagay".

Kung naalala mo habang natututo ng mga variable at nagtatalaga ng mga uri ng data sa mga variable na iyon mayroon din kaming mga uri ng data na "Bagay". Kapag ang itinalagang uri ng data ng object at kung ang object na iyon ay hindi umiiral sa worksheet o workbook na tinutukoy namin pagkatapos makukuha namin ang mensahe ng error sa VBA bilang "Mga bagay na kailngan". Kaya, bilang isang bagong coder, pangkaraniwan na ipahayag ang panic sa mga sitwasyong iyon dahil sa nagsisimula na antas ng nagsisimula ay hindi mahanap ang sanhi ng error na ito.

Bakit Nangyayari ang Kinakailanganang Error? (at ... Paano Ayusin ito?)

Ok, tumatagal ng dalawa o tatlong mga halimbawa upang maunawaan kung bakit nangyayari ang error na ito at kung paano ito ayusin.

Maaari mong i-download ang VBA Object Required Excel Template dito - VBA Object Required Excel Template

Para sa isang halimbawa tingnan ang code sa ibaba.

Code:

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

Hayaan mong ipaliwanag ko sa iyo ang code sa itaas para sa iyo.

Inihayag ko ang tatlong mga variable at ang unang dalawang variable ay tumutukoy sa mga bagay na "Workbook" at "Worksheet". Ang pangatlong variable ay tumutukoy sa uri ng data na "Petsa".

Kapag ang mga uri ng data na "Bagay" ay nakatalaga sa variable kailangan naming gamitin ang salitang "Itakda" na key upang italaga ang sanggunian ng object sa variable, kaya sa susunod na dalawang linya sa pamamagitan ng paggamit ng "Itakda" na keyword na itinalaga ko ang sanggunian ng "ThisWorkbook" sa variable na "Wb" dahil ang variable na ito ay humahawak sa uri ng data ng object bilang "Workbook" at para sa variable na "Ws" naitalaga ko ang worksheet object ng worksheet na "Data" sa workbook na ito.

 Itakda ang Wb = ThisWorkbook
 Itakda ang Ws = ThisWorkbook.Worksheets ("Data")
  • Sa susunod na linya para sa variable na uri ng data na "Petsa" ginamit ko rin ang keyword na "Itakda" upang italaga ang halaga ng halaga ng cell A1 sa workbook na ito (Wb) at sa worksheet na "Data" (Ws).
 Itakda ang MyToday = Wb.Ws.Cells (1, 1)
  • Sa susunod na linya, ipinapakita namin ang halaga ng variable na "MyDate" na halaga ng cell A1 sa kahon ng mensahe sa VBA.
MsgBox MyToday
  • Ok, patakbuhin natin ang code na ito at tingnan kung ano ang nakukuha natin bilang isang resulta.

Tulad ng nakikita mo sa itaas ipinapakita nito ang mensahe ng error sa VBA bilang "Mga bagay na kailngan". Ok, oras na upang suriin kung bakit nakakakuha kami ng mensahe ng error.

  • Sa imahe ng mensahe ng error sa itaas sa seksyon ng code habang ipinapakita ang mensahe ng error na-highlight nito ang bahagi ng error ng code na may asul na kulay.

  • Kaya, nananatili ang tanong ay kung bakit nakuha namin ang error na ito. Ang unang bagay na kailangan nating makita ay ang partikular na uri ng data ng variable na ito. Bumalik sa nakaraang linya ng code kung saan itinalaga namin ang uri ng data sa variable na "MyDate".

  • Itinalaga namin ang variable na uri ng data bilang "Petsa" at ngayon bumalik sa linya ng error ngayon.

Sa linyang ito, ginamit namin ang keyword na "Itakda" samantalang ang aming uri ng data ay hindi ang uri ng data na "Bagay". Kaya't sa sandaling nakikita ng VBA code ang keyword na "Itakda" ipinapalagay nito na ito ay isang uri ng data ng object at sinasabing nangangailangan ito ng sanggunian ng object.

Kaya, sa ilalim na linya ay "Itakda" ang keyword na ginamit upang mag-refer lamang upang tukuyin ang mga variable ng bagay tulad ng Worksheet, Workbook, atbp.…

Halimbawa # 1

Tingnan ngayon ang code sa ibaba.

Code:

 Sub Object_Required_Error () Saklaw ("A101"). Halaga = Application1. WorksheetFunction.Sum (Saklaw ("A1: A100")) End Sub 

Sa code sa itaas, ginamit namin ang pagpapaandar ng worksheet na "SUM" upang makuha ang kabuuan ng mga halaga ng cell mula A1 hanggang A100. Kapag pinatakbo mo ang code na ito magkakaroon kami ng error sa ibaba.

Naku !! Sinasabi nito na "Error sa Run-time na '424': Kinakailangan ang Bagay.

Ngayon ay tingnan natin ang code ngayon.

Sa halip na gamitin ang "Application" nagkamali kaming gumamit ng "Application1", kaya nakaranas ito ng error ng "Kailangan ng Bagay" sa VBA code.

Kung pinagana ang salitang "Option Explicit" pagkatapos ay makakakuha kami ng error na "Variable Not Defined".

Bagay na dapat alalahanin

  • Nangangailangan ang Bagay na bagay na nangangahulugang tumpak ang uri ng sanggunian ng uri ng data.
  • Kapag ang opsyon na malinaw na salita ay hindi pinagana sa pag-coding makakakuha kami ng error na Kinakailangan ng Bagay para sa maling pagbaybay ng mga salitang variable at kung pinagana ang Opsyon na Maliwanag makakakuha kami ng variable na hindi natukoy na error para sa mga maling nabaybay na salita.