ВБА грешка 1004-Апликационо дефинисана или објектно дефинисана грешка

Овај водич ће објаснити ВБА грешку 1004-грешка дефинисана апликацијом или објектом.

ВБА грешка 1004 времена извођења позната је као грешка дефинисана апликацијом или објектом дефинисана која се јавља док је код покренут. Прављење грешака у кодирању (погледајте наш Водич за руковање грешкама) саставни је део учења ВБА, али сазнање зашто долази до грешке помаже вам да избегнете грешке у будућем кодирању.

ВБА грешка 1004 - Објекат не постоји

Ако говоримо о објекту у нашем коду, као што је назив опсега који није дефинисан, онда се ова грешка може појавити јер ВБА код неће моћи да пронађе име.

12345678 Суб ЦопиРанге ()Затамните копију из опсегаЗатамните ЦопиТо Ас РангеПостави ЦопиФром = Схеетс (1) .Ранге ("ЦопиФром")Постави ЦопиТо = Схеетс (1) .Ранге ("ЦопиТо")ЦопиФром.ЦопиЦопиТо.ПастеСпециал клПастеВалуесЕнд Суб

Горњи пример ће копирати вредности из именованог опсега „ЦопиФром“ у именовани опсег „ЦопиТо“ - под условом наравно да су то постојећи именовани опсези! Ако не постоје, приказаће се грешка 1004.

Најједноставнији начин да избегнете ову грешку у горњем примеру је креирање назива опсега у Екцел радној свесци или упућивање на опсег у традиционалном формату редова и колона, на пример: Домет („А1: А10“).

ВБА грешка 1004 - Име је већ заузето

До грешке може доћи и ако покушавате да преименујете објекат у објекат који већ постоји - на пример ако покушавамо да преименујемо Схеет1, али име које дајете листу је већ име другог листа.

123 Радни лист под називом ()АцтивеСхеет.Наме = "Лист 2"Енд Суб

Ако већ имамо Схеет2, доћи ће до грешке.

ВБА грешка 1004 - Погрешно упућивање на објекат

До грешке може доћи и ако сте погрешно референцирали објекат у коду. На пример:

12345678 Суб ЦопиРанге ()Затамните копију из опсегаЗатамните ЦопиТо Ас РангеПодеси ЦопиФром = Ранге ("А1: А10")Подеси ЦопиТо = Ранге ("Ц1: Ц10")Опсег (ЦопиФром) .ЦопиОпсег (ЦопиТо) .ПастеСпециал клПастеВалуесЕнд Суб

Ово ће нам поново дати грешку 10004

Исправите код и грешка се више неће приказивати.

12345678 Суб ЦопиРанге ()Затамните копију из опсегаЗатамните ЦопиТо Ас РангеПодеси ЦопиФром = Ранге ("А1: А10")Подеси ЦопиТо = Ранге ("Ц1: Ц10")ЦопиФром.ЦопиЦопиТо.ПастеСпециал клПастеВалуесЕнд Суб

ВБА грешка 1004 - Објекат није пронађен

До ове грешке може доћи и када покушавамо да отворимо радну свеску, а радна свеска није пронађена - радна свеска у овом случају је објекат који није пронађен.

1234 Суб ОпенФиле ()Дим вб Као радна свескаСет вб = Воркбоокс.Опен ("Ц: \ Дата \ ТестФиле.клск")Енд Суб

Иако ће порука бити другачија у оквиру за грешку, грешка је и даље 1004.

wave wave wave wave wave