Excel-Tutorial für UserForms

June 17

Skriptsprache Microsoft Excel, Visual Basic, erhöht nicht nur die Funktionalität von Excel, aber auch können diese Funktionalität--durch Benutzerformularen verwenden erleichtern. Benutzerformulare sind kleine Fenster, denen Benutzer Daten im Arbeitsblatt durch eingeben können.

Erstellen Sie das Formular

Beginnen, erstellen ein Benutzerformular durch Eingabe der Visual Basic-IDE (integrierte Entwicklungsumgebung): aus dem Excel-Arbeitsblatt, drücken Sie "Alt"-"F11". Erstellen Sie ein neues Benutzerformular indem Sie auf "Einfügen" > "UserForm".

Drag & drop die folgenden Steuerelemente aus der Toolbox auf das Formular: zwei Textfelder, die zweite unter der ersten. Fügen Sie eine Befehlsschaltfläche unter den Textfeldern und zwei Label-Steuerelemente, die jeweils auf der linken Seite eines Textfelds. Ändern Sie im Eigenschaftenfenster die Beschriftung der oberen Bezeichnung "Name" und die Beschriftung der unteren Bezeichnung "E-Mail-Adresse." Ändern der Beschriftung der Schaltfläche auf "Absenden".

Geben Sie den Code

Jetzt schreiben Sie Code, der Daten aus dem Formular abruft und in ein Arbeitsblatt eingefügt.

Der Formular-Designer-Fenster doppelklicken Sie auf die Schaltfläche "Absenden". Der Cursor springt zum Button1_Click-Ereignis, das ausgelöst wird, wenn die Schaltfläche, während der Programmlaufzeit geklickt wird.

Geben Sie im Button1_Click-Ereignis den folgenden Programmcode:

Dim R As Range

Set f = Range("a65536"). End(xlUp)

Set f = r.Offset (1, 0)

r.Value = TextBox1.Value

Set f = r.Offset (0, 1)r.Value = TextBox2.Value Schreiben Sie eine kleine Unterroutine, die das neue Benutzerformular wird angezeigt. Innerhalb der IDE Doppelklicken Sie im Projektbereich auf ThisWorkbook. Geben Sie in das Codefenster dieser neuen Unterroutine:

Public Sub mac1()UserForm1.Show

EndSub

Führen Sie das Programm aus dem Excel-Arbeitsblatt dazu Developer > Makros, "mac1" auswählen und die Taste "Ausführen". Geben Sie einige Daten im Arbeitsblatt mit dem Benutzerformular.

Entdecken Sie das Programm

Die erste Zeile der Button1_Click deklariert eine Bereichsvariable. Ein Bereich ist eine Gruppe von Zellen im Arbeitsblatt. Sie werden Daten in diesem Bereich mit dem Code nach der Dim-Anweisung eingeben.

Die Anweisung Set R = Range("a65536"). End(xlUp) ist ein Bereich einer Zelle definiert: die linke Zelle der vorherigen Zeile von Daten. Dies ist keine intuitiv gestaltete Stück Code, also keine Sorge, wenn Sie es nicht auf den ersten Blick verstehen. Brechen Sie die Anweisung zu sehen, wie es funktioniert. Der Range("a65536") Teil gibt eindeutig die Zelle a65536--Weg am unteren Rand der ersten Spalte im Arbeitsblatt. Das nächste Stück, End(xlUp), ist ein weiterer Bereich: Es ist, wo Sie den Cursor am Ende würde wenn Sie es zunächst auf Zelle a65536 hatte, die Ende-Taste gedrückt und dann den Pfeil nach oben gedrückt.

Würden Sie Daten in die Zelle eingeben, würden Sie die vorherige Zeile überschrieben. Deshalb brauchen Sie die nächste Anweisung: Legen Sie R = r.Offset (1, 0). Diese Anweisung definiert die Auswahl um eine Zeile nach unten (und NULL Spalten rechts) werden von wo es war. Der Bereich "R" ist jetzt in der ersten leeren Zelle unterhalb einer vorhandenen Datenzeilen. Das ist, wo Ihr Code Eingabe einer neuen Datenzeile kann beginnen.

Füllung-Zellendaten aus Formulareingabe

Die nächsten Anweisungen bewegen den Formulardaten auf den Bereich Code gerade als die ersten leeren Zellen unterhalb der vorherige Datenzeile identifiziert. r.Value = TextBox1.Value setzt die leere Zelle Wert mit dem Wert aus dem ersten Textfeld. Die nächste Zelle ist eine Spalte auf der rechten und Set-R = r.Offset (0, 1) Neudefinitionen den Bereich um die Zelle zu sein. Die Argumente 0 und 1 auf 0 Zeilen nach unten und 1 Zelle rechts von des vorherigen Bereichs ("R") beziehen Position.

Füllen die beiden Spalten schließt eine Datenzeile. Klickt der Benutzer auf die Schaltfläche, wird wieder das Button1_Click-Ereignis ausgeführt. Das Set R = Range("a65536"). End(xlUp) wird die Reihe der neuen Zeile noch einmal richtig einstellen.