Wymagany obiekt VBA

Obiekt wymagany w Excel VBA

Błędy są nieodłączną częścią języka kodowania, ale prawdziwy geniusz polega na 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 przypisano typ danych obiektu i jeśli ten obiekt nie istnieje w arkuszu lub skoroszycie, do którego się odwołujemy, otrzymamy 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ć.

Możesz pobrać ten szablon Excel wymagany dla obiektu VBA tutaj - Szablon programu Excel wymagany dla obiektu VBA

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 „Workbook” i „Worksheet”. Trzecia zmienna odnosi się do typu danych „Data”.

Kiedy typy danych „Obiekt” są przypisane do zmiennej, musimy użyć klawisza „Set”, aby przypisać odniesienie obiektu do zmiennej, więc w następnych dwóch wierszach za pomocą słowa kluczowego „Set” 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 o błędzie 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 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 obiektowych 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 !! Wyświetlany jest komunikat „Błąd wykonania '424': obiekt wymagany.

Przyjrzyjmy się teraz bliżej kodowi.

Zamiast używać „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 niezdefiniowanej zmiennej dla błędnie zapisanych słów zmiennych.