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.