Errore VBA 1004 - Errore definito dall'applicazione o dall'oggetto

Questo tutorial spiegherà l'errore VBA 1004- Errore definito dall'applicazione o dall'oggetto.

L'errore di runtime VBA 1004 è noto come errore definito dall'applicazione o dall'oggetto che si verifica durante l'esecuzione del codice. Fare errori di codifica (consulta la nostra Guida alla gestione degli errori) è parte integrante dell'apprendimento di VBA, ma sapere perché si verifica un errore ti aiuta a evitare di commettere errori nella codifica futura.

Errore VBA 1004 - L'oggetto non esiste

Se ci riferiamo a un oggetto nel nostro codice come un nome intervallo che non è stato definito, questo errore può verificarsi poiché il codice VBA non sarà in grado di trovare il nome.

12345678 Sub CopyRange()Dim CopyDa come intervalloDim CopyTo As RangeImposta CopyFrom = Sheets(1).Range("CopyFrom")Imposta CopyTo = Fogli(1).Range("CopyTo")CopiaDa.CopiaCopyTo.PasteSpecial xlPasteValuesFine sottotitolo

L'esempio sopra copierà i valori dall'intervallo denominato "CopyFrom" all'intervallo denominato "CopyTo" - a condizione ovviamente che questi siano intervalli denominati esistenti! Se non esistono, verrà visualizzato l'errore 1004.

Il modo più semplice per evitare questo errore nell'esempio sopra è creare i nomi degli intervalli nella cartella di lavoro di Excel o fare riferimento all'intervallo nel tradizionale formato di riga e colonna, ad esempio: Intervallo ("A1: A10").

Errore VBA 1004 - Nome già preso

L'errore può verificarsi anche se stai cercando di rinominare un oggetto con un oggetto già esistente, ad esempio se stiamo provando a rinominare Foglio1 ma il nome che stai dando al foglio è già il nome di un altro foglio.

123 SottonomeFoglio di lavoro()ActiveSheet.Name = "Foglio2"Fine sottotitolo

Se abbiamo già un Foglio2, si verificherà l'errore.

Errore VBA 1004 - Riferimento errato a un oggetto

L'errore può verificarsi anche quando si è fatto riferimento in modo errato a un oggetto nel codice. Per esempio:

12345678 Sub CopyRange()Dim CopyDa come intervalloDim CopyTo As RangeImposta CopiaDa = Intervallo ("A1: A10")Imposta Copia su = Intervallo ("C1: C10")Intervallo(CopiaDa).CopiaRange(CopyTo).PasteSpecial xlPasteValuesFine sottotitolo

Questo ci darà ancora una volta l'errore 10004

Correggi il codice e l'errore non verrà più visualizzato.

12345678 Sub CopyRange()Dim CopyDa come intervalloDim CopyTo As RangeImposta CopiaDa = Intervallo ("A1: A10")Imposta Copia su = Intervallo ("C1: C10")CopiaDa.CopiaCopyTo.PasteSpecial xlPasteValuesFine sottotitolo

Errore VBA 1004 - Oggetto non trovato

Questo errore può verificarsi anche quando stiamo tentando di aprire una cartella di lavoro e la cartella di lavoro non viene trovata: la cartella di lavoro in questa istanza è l'oggetto che non viene trovato.

1234 Sotto ApriFile()Dim wb come cartella di lavoroImposta wb = Workbooks.Open("C:\Data\TestFile.xlsx")Fine sottotitolo

Sebbene il messaggio sarà diverso nella casella di errore, l'errore è ancora 1004.

wave wave wave wave wave