Błąd wymagany obiekt w Excel VBA - rozwiązywanie problemów

Przegląd błędów wymaganych przez obiekt

Ten samouczek pomoże Ci rozwiązać problemy z błędami wymaganymi przez obiekt w VBA.

<

<

Przegląd obiektów

W VBA obiekt jest „rzeczą”, taką jak arkusz, skoroszyt, zakres, kształt, wiersz, kolumna, formularz użytkownika, kontrolka itp.

Obiekty posiadają właściwości (np. nazwa, kolor, ukryty) i metody (np. otwórz, wyczyść, zapisz, ukryj). Jeśli spróbujesz zastosować właściwość lub metodę, VBA potrzebuje prawidłowego obiektu, na którym można zastosować właściwości lub metody.

Jeśli nie dostarczysz prawidłowego obiektu, otrzymasz Błąd wymagany obiekt.

Ten przewodnik pomoże w rozwiązywaniu problemów z błędami wymaganymi przez obiekt.

#1. Opcja Jawne/Błędnie napisane nazwy zmiennych

Najpierw sprawdź, czy nie pomyliłeś się w nazwie obiektu. Błędnie napisana nazwa może spowodować błąd Wymagany obiekt.

Może się to zdarzyć w przypadku istniejących nazw obiektów:

<>

Lub z nazwami zmiennych:

<>

Dobrym sposobem na zapobieganie błędom w pisowni nazw zmiennych jest upewnienie się, że deklarujesz Option Explicit w górnej części modułu kodu.

1 Opcja Wyraźna

Option Explicit wymusza zadeklarowanie zmiennych. Teraz, gdy debugujesz <> swój kod, otrzymasz wiadomość, że musisz zdefiniować swoją zmienną:

<>

Powinno to pomóc ci w tym, że ta zmienna jest błędnie napisana.

Programowanie VBA | Generator kodu działa dla Ciebie!

#2 Przypisania zmiennych

Następnie upewnij się, że poprawnie przypisałeś zmienne.

Zmienne obiektu muszą być przypisane za pomocą Set Object = : <>

<>

Jeśli nie użyjesz opcji Set do przypisania zmiennych obiektów, pojawi się błąd Wymagany obiekt.

<>

Podobnie, zmienne niebędące obiektami powinny być przypisane bez Set:

<>

Jeśli spróbujesz użyć Set na zmiennej niebędącej obiektem, otrzymasz błąd Wymagany obiekt.

<>

#3 Moduły na poziomie arkusza roboczego

Czy Twój kod znajduje się w module na poziomie arkusza? Jeśli tak, musisz zachować szczególną ostrożność, odwołując się do nazwanych zakresów w innych arkuszach.

Na przykład możesz mieć nazwany zakres na poziomie skoroszytu „Data”, w zwykłym module kodu, możesz odwoływać się do nazwanego zakresu w następujący sposób:

1 Zakres MsgBox("Data").value

Jeśli jednak odwołujesz się do nazwanego zakresu z poziomu modułu na poziomie arkusza, musisz jawnie zdefiniować arkusz, w którym znajduje się nazwany zakres:

1 MsgBox Sheets("Arkusz2").Range("Data").value

W przeciwnym razie napotkasz błąd:

<>

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave