Овај водич ће објаснити ВБА грешку 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.