Wymagany obiekt VBA - Jak naprawić błąd wymagany przez obiekt w Excel VBA?

Obiekt wymagany w Excel VBA

Błędy są nieodłączną częścią języka kodowania, ale prawdziwy geniusz tkwi w znalezieniu błędu i naprawieniu tych błędów. Pierwszym krokiem do naprawienia tych błędów jest inteligencja polegająca na znalezieniu przyczyn ich występowania. Jeśli możesz dowiedzieć się, dlaczego pojawiają się te błędy, naprawienie tych błędów bez nadmiernego wysiłku jest bardzo łatwe. Jednym z takich błędów w kodowaniu VBA jest „Wymagany obiekt”.

Jeśli pamiętasz, podczas uczenia się zmiennych i przypisywania typów danych do tych zmiennych, mamy również typy danych „Obiekt”. Gdy przypisany jest typ danych obiektu, a ten obiekt nie istnieje w arkuszu lub skoroszycie, do którego się odnosimy, otrzymujemy komunikat o błędzie VBA jako „Wymagany obiekt”. Tak więc jako nowy programista często panikuje w takich sytuacjach, ponieważ na poziomie początkowym początkujący nie może znaleźć przyczyny tego błędu.

Dlaczego pojawia się błąd wymagany przez obiekt? (i… jak to naprawić?)

Ok, potrzeba dwóch lub trzech przykładów, aby naprawdę zrozumieć, dlaczego ten błąd występuje i jak go naprawić.

Na przykład spójrz na poniższy kod.

Kod:

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

Pozwól, że wyjaśnię ci powyższy kod.

Zadeklarowałem trzy zmienne, a pierwsze dwie zmienne odnoszą się do obiektów „Skoroszyt” i „Arkusz roboczy”. Trzecia zmienna odnosi się do typu danych „Data”.

Kiedy typy danych „Object” są przypisane do zmiennej, musimy użyć klawisza „Set”, aby przypisać odniesienie obiektu do zmiennej, więc w następnych dwóch wierszach, używając słowa kluczowego „Set”, I przypisałem odniesienie „ThisWorkbook” do zmiennej „Wb”, ponieważ ta zmienna zawiera typ danych obiektu jako „Workbook”, a dla zmiennej „Ws” przypisałem obiekt arkusza roboczego arkusza „Data” w tym skoroszycie.

Ustaw Wb = ThisWorkbook
Ustaw Ws = ThisWorkbook.Worksheets ("Data")
  • W następnym wierszu dla zmiennej typu danych „Data” również użyłem słowa kluczowego „Set”, aby przypisać wartość komórki A1 w tym skoroszycie (Wb) oraz w arkuszu „Dane” (Ws).
Ustaw MyToday = Wb.Ws.Cells (1, 1)
  • W następnym wierszu pokazujemy wartość zmiennej „MyDate” wartość komórki A1 w oknie komunikatu w języku VBA.
MsgBox MyToday
  • Ok, uruchommy ten kod i zobaczmy, co otrzymamy w wyniku.

Jak widać powyżej, komunikat o błędzie VBA jest wyświetlany jako „Wymagany obiekt”. Ok, czas sprawdzić, dlaczego otrzymujemy ten komunikat o błędzie.

  • Na powyższym obrazie komunikatu błędu w sekcji kodu, pokazując komunikat o błędzie, podświetlił część kodu błędu kolorem niebieskim.
  • Pozostaje więc pytanie, dlaczego mamy ten błąd. Pierwszą rzeczą, którą musimy zobaczyć, jest ten konkretny typ danych zmiennych. Wróć do poprzedniego wiersza kodu, w którym przypisaliśmy typ danych do zmiennej „MyDate”.
  • Przypisaliśmy zmiennemu typowi danych „Data”, a teraz wróćmy do wiersza błędu.

W tym wierszu użyliśmy słowa kluczowego „Set”, podczas gdy nasz typ danych nie jest typem danych „Object”. Tak więc w momencie, gdy kod VBA widzi słowo kluczowe „Set”, zakłada, że ​​jest to typ danych obiektu i mówi, że wymaga odwołania do obiektu.

Tak więc, w dolnej linii słowo kluczowe „Set” jest używane tylko w odniesieniu do zmiennych obiektów, takich jak arkusz roboczy, skoroszyt itp.…

Przykład 1

Spójrz teraz na poniższy kod.

Kod:

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

W powyższym kodzie użyliśmy funkcji arkusza „SUMA”, aby uzyskać sumę wartości komórek od A1 do A100. Po uruchomieniu tego kodu napotkamy poniższy błąd.

Ups !! Mówi: „Błąd wykonania '424': obiekt wymagany.

Przyjrzyjmy się teraz bliżej kodowi.

Zamiast „Aplikacja” omyłkowo użyliśmy „Aplikacja1”, więc napotkaliśmy błąd „Wymagany obiekt” w kodzie VBA.

Jeśli słowo „Option Explicit” jest włączone, otrzymamy błąd „Variable Not Defined”.

Rzeczy do zapamiętania

  • Wymagany obiekt oznacza, że ​​odniesienie do typu danych obiektu musi być dokładne.
  • Gdy opcja słowo jawne nie jest włączona w kodowaniu, otrzymamy błąd Object Required dla błędnie wpisanych słów zmiennych, a jeśli opcja Option Explicit jest włączona, otrzymamy błąd nie zdefiniowanej zmiennej dla błędnie napisanych słów zmiennych.

Interesujące artykuły...