Błąd VBA 1004 - błąd zdefiniowany przez aplikację lub zdefiniowany przez obiekt

W tym samouczku wyjaśniono błąd VBA 1004 - błąd zdefiniowany przez aplikację lub zdefiniowany przez obiekt.

Błąd czasu wykonywania VBA 1004 jest znany jako błąd zdefiniowany przez aplikację lub zdefiniowany przez obiekt, który występuje podczas działania kodu. Popełnianie błędów w kodowaniu (zobacz nasz Przewodnik obsługi błędów) jest nieodłączną częścią nauki VBA, ale wiedza o przyczynach wystąpienia błędu pomaga uniknąć błędów w przyszłym kodowaniu.

VBA Błąd 1004 - Obiekt nie istnieje

Jeśli odwołujemy się do obiektu w naszym kodzie, takiego jak nazwa zakresu, który nie został zdefiniowany, ten błąd może wystąpić, ponieważ kod VBA nie będzie mógł znaleźć nazwy.

12345678 Podzakres kopii()Przyciemnij kopię z zakresuDim CopyTo As RangeUstaw CopyFrom = Sheets(1).Range("CopyFrom")Ustaw CopyTo = Sheets(1).Range("CopyTo")KopiujZ.KopiujCopyTo.PasteSpecial xlPasteValuesNapis końcowy

Powyższy przykład skopiuje wartości z nazwanego zakresu „CopyFrom” do nazwanego zakresu „CopyTo” - oczywiście pod warunkiem, że są to istniejące nazwane zakresy! Jeśli nie istnieją, zostanie wyświetlony błąd 1004.

Najprostszym sposobem uniknięcia tego błędu w powyższym przykładzie jest utworzenie nazw zakresów w skoroszycie programu Excel lub odwołanie się do zakresu w tradycyjnym formacie wiersza i kolumny, np.: Zakres („A1:A10”).

Błąd VBA 1004 - nazwa już zajęta

Błąd może również wystąpić, jeśli próbujesz zmienić nazwę obiektu na obiekt, który już istnieje - na przykład, jeśli próbujemy zmienić nazwę Arkusz1, ale nazwa, którą nadajesz arkuszowi, jest już nazwą innego arkusza.

123 Nazwa podrzędna Arkusz roboczy()ActiveSheet.Name = "Arkusz2"Napis końcowy

Jeśli mamy już Arkusz2, to wystąpi błąd.

Błąd VBA 1004 - Nieprawidłowe odwoływanie się do obiektu

Błąd może również wystąpić, gdy niepoprawnie odwołujesz się do obiektu w swoim kodzie. Na przykład:

12345678 Podzakres kopii()Przyciemnij kopię z zakresuDim CopyTo As RangeUstaw CopyFrom = Range("A1:A10")Ustaw CopyTo = Zakres("C1:C10")Zakres (KopiujOd).KopiujZakres (Kopiuj do). PasteSpecial xlPasteValuesNapis końcowy

To po raz kolejny da nam błąd 10004

Popraw kod, a błąd nie będzie już wyświetlany.

12345678 Podzakres kopii()Przyciemnij kopię z zakresuDim CopyTo As RangeUstaw CopyFrom = Range("A1:A10")Ustaw CopyTo = Zakres("C1:C10")KopiujZ.KopiujCopyTo.PasteSpecial xlPasteValuesNapis końcowy

Błąd VBA 1004 - Nie znaleziono obiektu

Ten błąd może również wystąpić, gdy próbujemy otworzyć skoroszyt, a skoroszyt nie zostanie znaleziony - skoroszyt w tym przypadku jest obiektem, który nie został znaleziony.

1234 Sub OpenFile()Dim wb jako skoroszytSet wb = Workbooks.Open("C:\Data\TestFile.xlsx")Napis końcowy

Chociaż komunikat w polu błędu będzie inny, błąd nadal wynosi 1004.

wave wave wave wave wave