Errore in fase di esecuzione 1004 Excel 2013

Private Sub CommandButton1_Click() Dim lRow As Long Dim ws As Worksheet Set ws = Worksheets("Sheet2") lRow = ws.Cells(Rows.Count, 1).End(x1Up).Offset(1, 0).Row With ws .Cells(lRow, 1).Value = UserForm1.TextBox1.Value .Cells(lRow, 2).Value = UserForm1.TextBox2.Value End With End Sub 

Sto usando questa macro per aggiungere alcune voci nelle celle. Voglio solo aggiungere i 2 valori nelle caselle di testo e premendo il pulsante per spostare le voci in Sheet2. La seconda volta, le 2 voci verranno spostate sotto la prima voce e così via …

Ogni volta che preme il pulsante viene visualizzato il messaggio “Errore in fase di esecuzione 1004”.

Il tuo problema è stato identificato con competenza da mongoose36, ma qui è come individuare e risolvere problemi come questo in futuro.

Errore di compilazione: variabile non definita

L’impostazione richiede la dichiarazione delle variabili all’interno degli strumenti di VBE ► Opzioni ► Pagina delle proprietà dell’editor inserisce l’istruzione Explicit Option nella parte superiore di ogni foglio di codice appena creato. Ciò eviterà errori di codifica stupidi come errori ortografici e influirà sull’uso del tipo di variabile corretto nella dichiarazione delle variabili. Le variabili create al volo senza dichiarazione sono tutte della variante / tipo di object.

option_explicit
Errore di compilazione semplice variabile / errore ortografico costante (X1UP deve essere XLUP)

Quando si riceve un errore durante l’esecuzione, andare al sottotitolo nel VBE e toccare F8 . Il compilatore emetterà immediatamente un messaggio di errore di compilazione ed evidenzierà la porzione offensiva dell’istruzione.

Anche se questo non risolverà tutti gli errori di compilazione, rende i semplici errori facili e veloci da identificare e correggere.

Addendum – Errore di compilazione: errore di syntax

C’è un caso speciale che coinvolge variabili errate che dovrebbero essere affrontate. La dichiarazione, l’assegnazione o l’uso di una variabile con un nome che inizia con una cifra è una syntax non consentita. L’errore di syntax sostituisce l’errore Variabile non definito; ci sono due errori ma l’errore principale riportato è Errore di syntax. In questo caso l’intera codeline è evidenziata.

option_explicit_number
Errore di compilazione errata di variabili con cifre come primo carattere (1ROW dovrebbe essere LROW)

Si sta scrivendo un buon codice con riferimenti espliciti al foglio di lavoro principale e non si basa sulla proprietà implicita di ActiveSheet . Fai un passo avanti con l’opzione Richiedi la dichiarazione delle variabili. L’uso dell’opzione Explicit è ampiamente considerato “best practice”.

Cambia ws.Cells(Rows.Count, 1).End(x1Up).Offset(1, 0).Row

A ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

Il carattere in grassetto in Fine (x l Up) è un l come in leone non un 1 (uno).

Anche all’interno del form utente è ansible utilizzare il seguente Me.TextBox1.Value . Anche il naming del userform funzionerà, ma l’altro è più veloce da scrivere.