2016-03-19 19 views
2
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 

Ich verwende dieses Makro, um einige Einträge in Zellen hinzuzufügen. Ich möchte nur die 2 Werte in Textfelder hinzufügen und die Schaltfläche drücken, um die Einträge in Sheet2 zu verschieben. Zum zweiten Mal werden die 2 Einträge unter den ersten Eintrag verschoben und so weiter ...Laufzeitfehler 1004 Excel 2013

Jedes Mal, wenn ich den Knopf drücke, erhalte ich die Meldung "Laufzeitfehler 1004".

Antwort

2

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

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

Die fett gedruckte Zeichen in End (x l Up) ist ein L wie in Lion keine 1 (eins).

Auch innerhalb des Benutzerformulars können Sie folgende Me.TextBox1.Value verwenden. Das Benennen des Benutzerformulars funktioniert auch, aber das andere ist schneller zu schreiben.

+0

Guter Fang! Diese Supervision muss mit den Kobras helfen. – Jeeped

+0

Absolut! Warum denkst du, dass ich noch lebe? ;) – mongoose36

+0

Vielen Dank. Manchmal liegen die häufigsten Fehler vor deinen Augen und du kannst sie nicht sehen. – Ariakan

4

Ihr Problem wurde fachmännisch durch mongoose36 identifiziert, aber hier ist, wie Probleme in der Zukunft zu lokalisieren und zu beheben.

Compile Fehler: Variable nicht definiert

Variable Declaration die innerhalb der VBE einzustellen sind Extras ► Optionen ► Editor Eigenschaftenseite wird die Option Explicit Anweisung an den Anfang jedes neu erstellten Code Blatt gelegt. Dieses wird alberne Codierungsfehler wie Rechtschreibfehler vermeiden sowie Sie beeinflussen, den richtigen Variablentyp in der Variablen Deklaration zu verwenden. Variablen, die ohne Deklaration direkt erstellt werden, sind alle vom Typ Variante/Objekt.

option_explicit
Einfache Variable/Konstante misspelling Compiler-Fehler

(X1UP sollte xlUp sein) Wenn Sie einen Fehler während der Laufzeit zu erhalten, gehen Sie auf die Unter im VBE und tippen F8. Der Compiler wird sofort eine Compile-Fehlermeldung ausgeben und den betreffenden Teil der Anweisung markieren.

Während dies nicht alle Kompilierungsfehler auflösen wird, macht es die einfachen Fehler schnell und einfach zu identifizieren und zu korrigieren.

Addendum - Kompilierfehler: Syntaxfehler

Es gibt einen speziellen Fall falsch geschriebene Variablen beteiligt, die angegangen werden sollte. Deklaration, Zuweisung oder Verwendung einer Variablen mit einem Namen, der mit einer Ziffer beginnt, ist eine unzulässige Syntax. Der Syntaxfehler ersetzt den Fehler Variable nicht definiert; Es gibt zwei Fehler, aber der primäre gemeldete Fehler ist Syntaxfehler. In diesem Fall wird die gesamte Codezeile hervorgehoben.

option_explicit_number
Variable misspelling Compiler-Fehler mit der Ziffer als erstes Zeichen (1ROW sollte lRow sein)

Sie schreiben guten Code mit expliziten Eltern Arbeitsblatt Referenzen und nicht auf die impliziten ActiveSheet property verlassen. Gehen Sie einen Schritt weiter mit der Option Variablendeklaration erforderlich.Verwenden Option Explicit ist weithin als "Best Practice".

+1

Konnte nicht mehr zustimmen! – mongoose36

+0

Vielen Dank für den Tipp über "Require Variable Declaration". – Ariakan

Verwandte Themen