Inhaltsverzeichnis
Sie können die integrierten Excel-Arbeitsblattfunktionen nutzen, wie z. B. die VLOOKUP-Funktion die CHOOSE Funktion und die PMT-Funktion auch in Ihrem VBA-Code und Ihren Anwendungen. Tatsächlich sind die meisten Excel Arbeitsblattfunktionen können aufgerufen und verwendet werden in VBA Code . wie verwenden INDEX & MATCH Arbeitsblattfunktionen in Excel VBA-Code.
Warum sollten Sie die Excel Arbeitsblatt Funktionen in Ihrem VBA Code Nun, um die Funktionalität des Codes, den Sie verwenden, zu erweitern. Sie müssen auch keine eigenen Funktionen entwickeln, es sei denn, Sie müssen es wirklich, wenn die Funktionalität bereits vorhanden ist. Im Grunde brauchen Sie nur auf die Funktion zuzugreifen, die Sie benötigen, da sie bereits vorhanden ist, und Sie müssen das Rad nicht neu erfinden.
Beginnen wir also mit einem Beispiel, das zeigt, wie man INDEX MATCH mit Excel VBA.
Wir werden die INDEX und MATCH Funktionen in Excel-VBA Code Mit Hilfe des Formulars wählt der Benutzer den Namen des Schülers aus, woraufhin das entsprechende Geschlecht des Schülers und die Augenfarbe abgerufen und zurückgegeben werden.
Download Arbeitsbuch Praxis
Bitte laden Sie das Übungsheft herunter, um selbst zu üben.
INDEX-MATCH.xlsx9 einfache Schritte zur Verwendung von INDEX und MATCH in VBA-Code
Die INDEX und MATCH Funktionen werden oft in Kombination in Formeln verwendet, um fortgeschrittene Nachschlageoperationen durchzuführen. Die beiden Funktionen in Kombination bieten bestimmte Vorteile gegenüber VLOOKUP .
Wir haben bereits ausführlich beschrieben, wie man INDEX und MATCH um erweiterte Suchvorgänge in einer Excel Arbeitsbuch als reine Arbeitsblattformel, in einer vorherige Anleitung Wir werden nun sehen, wie man die INDEX und MATCH Funktionen zusammen in VBA Code um eine ähnliche Funktionalität wie beim Nachschlagen zu erreichen UserForm die wir schaffen werden.
Schritt 1: Anwenden der INDEX- und MATCH-Funktionen im Datensatz
- Wir beginnen mit zwei Blättern in unserer makroaktivierten Arbeitsmappe. Das eine ist ein leeres Blatt namens UserForm , das andere ist ein Blatt namens StudentInformation die einen Bereich enthält, der Namen der Schüler, ihr jeweiliges Geschlecht und ihre Augenfarbe wie unten dargestellt.
Erinnern wir uns schnell, wenn wir die INDEX und MATCH Funktionen in einer Formel, im eigentlichen Arbeitsblatt, um das Geschlecht des Namens des Schülers, den wir nachschlagen wollen, zu ermitteln. Wir würden die folgende Formel verwenden:
=INDEX(B2:B31, MATCH("Diana Graham", A2:A31, 0))
- Beim Drücken von CTRL-ENTER erhalten wir den Wert "Females" als Geschlecht zurück, wie unten dargestellt.
Schritt 2: Ändern Sie den Namen der B-Spalte in StudentNames
- Wir werden nun den Bereich benennen A2: A31 , SchülerNamen wie unten dargestellt.
- Verstecken Sie die StudentInformation Blatt, indem Sie mit der rechten Maustaste klicken und Verstecken. Es ist eine gute Idee, die Arbeitsblätter im Backend, die die Informationen enthalten, die der Benutzer nicht bearbeiten oder sehen soll, oberflächlich auszublenden.
Schritt 3: Visual Basic-Fenster öffnen
- Jetzt, wo das UserForm-Blatt aktiviert ist, gehen wir zu Entwickler> Code> Visual Basic zu öffnen, um die Visual Basic Editor (VBE) .
- Einmal im VBE-Schnittstelle gehen wir zu Einfügen, UserForm wie unten gezeigt.
Schritt 4: Eigenschaften ändern und Textboxen hinzufügen
- Die Verwendung des Eigenschaften Fenster werden wir unser Formular umbenennen in StudentLookup ändern Sie die Überschrift in Lookup Student Information, ändern Sie die RückFarbe auf hellblau, und die Höhe auf 300 px und die Breite auf 350 Wenn das Eigenschaftsfenster nicht angezeigt wird, drücken Sie die Taste F4 Taste auf Ihrer Tastatur, um sie zu sehen.
- Wir fügen nun eine Beschriftung ein, indem wir die Werkzeugkasten (Wenn Sie die Toolbox aus irgendeinem Grund nicht sehen können, gehen Sie zu Ansicht, Werkzeugkasten ), ändern Sie die Beschriftung in Wählen Sie einen Schüler und wir werden die RückFarbe In diesem Fall wird die Schriftart auf weiß gesetzt. Georgien den Schriftstil auf fett , die Schriftgröße auf 12 und die Zentrum Der verwendete Spezialeffekt ist der 1- fmSpecialEffectRaised wie unten dargestellt.
- Nun fügen wir unterhalb der Beschriftung ein Kombinationsfeld ein, das wir cmdStudentName nennen und für das RowSource , Typ SchülerNamen.
- Um zu sehen, wie sich die Einstellung des RowSource des Kombinationsfeldes, Klicken Sie auf der Lauf Unter/BenutzerFormular Taste .
- Durch die Einstellung der RowSource Wenn der Benutzer auf den Dropdown-Pfeil in der UserForm klickt, zeigt das Kombinationsfeld automatisch die Schülernamen aus dem benannten Bereich an (siehe unten).
- Schließen Sie das UserForm, indem Sie auf die Schaltfläche Schließen klicken und auf Alt-F11 um zurück zu gehen zum VBE .
- Nach der Rückkehr in die VBE fügen Sie der UserForm ein weiteres Etikett hinzu (unterhalb des Kombinationsfeldes) und ändern Sie die Bildunterschrift zu Geschlecht und wir werden die RückFarbe In diesem Fall wird die Schriftart auf weiß gesetzt. Georgien den Schriftstil auf fett , die Schriftgröße auf 12 und die Zentrum Der verwendete Spezialeffekt ist der 1- fmSpecialEffectRaised wie unten dargestellt.
- erstellen. ein Textfeld unterhalb des Geschlecht Etikett und nennen Sie es txtGender .
- hinzufügen ein anderes Label namens Auge Farbe und ein Textfeld mit dem Namen txtEyeColour wie unten dargestellt. Verwenden Sie die gleichen Eigenschaften für das Etikett wie für die beiden anderen Etiketten, die zuvor dem Formular hinzugefügt wurden, um sicherzustellen, dass die UserForm hat ein einheitliches Aussehen.
- Jetzt Wählen Sie alle Steuerelemente, die dem UserForm bisher mit der Steuerungstaste.
- Zentrum waagerecht, wie unten dargestellt.
Lesen Sie mehr: Wie man die INDEX MATCH Formel in Excel verwendet (9 Beispiele)
Ähnliche Lektüre
- Excel INDEX MATCH If Cell Contains Text
- Wie man die INDEX-MATCH-Formel in Excel verwendet, um mehrere Ergebnisse zu generieren
- Indexabgleich Summe mehrerer Zeilen in Excel (3 Möglichkeiten)
- Excel VBA Programmierung & Makros lernen (Kostenloses Tutorial - Schritt für Schritt)
- 22 Makro-Beispiele in Excel VBA
Schritt 5: Hinzufügen einer Schaltfläche aus der Toolbox
- Nächste, hinzufügen eine Schaltfläche für das Formular mit der Werkzeugkasten . Ändern Sie die Name der Taste zu cmdLookUp die RückFarbe auf hellorange, halten Sie die Tahoma Schriftart und ändern den Stil zu fett ändern Sie schließlich die Bildunterschrift der Taste zu Siehe auf Studenten Einzelheiten wie unten dargestellt.
Schritt 6: VBA-Code einfügen
- Klicken Sie mit der rechten Maustaste auf . die neu hinzugefügte Schaltfläche, und Wählen Sie Siehe Code .
- Geben Sie den folgenden Code für das Schaltflächenklick-Ereignis ein:
Dim a As Variant Dim b As Variant Dim c As Variant a = cmdStudentName.Value Sheets("StudentInformation").Activate If a = "" Then b = "" Let txtGender.Text = b c = "" Let txtEyeColour.Text = c Else b = Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("B2:B31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) c =Application.WorksheetFunction.Index(Sheets("SchülerInformationen").Range("C2:C31"), Application.WorksheetFunction.Match(a, Sheets("SchülerInformationen").Range("A2:A31"), 0)) Let txtEyeColour.Text = c End If
Wir beginnen mit der Erklärung, dass drei Variablen und weisen diesen deklarierten Variantendatentypen den Varianten-Datentyp zu. Der Varianten-Datentyp ist ein guter Datentyp, um damit zu beginnen. Denn bei der Arbeit mit Arbeitsblatt Funktionen Verwenden Sie daher den Datentyp Variante, wenn Sie anfangen.
Später ist es ratsam, einen der anderen, spezifischeren Datentypen zu verwenden, wie z. B. Ganzzahl oder String. Bei fortgeschrittenem, längerem Code nutzt der Datentyp variant den Speicher nicht so effizient wie die anderen Datentypen.
Variable a den Wert der Option, die der Benutzer im Dropdown-Kombinationsfeld auf der Seite UserForm Wenn es keine Auswahl gibt, sind alle anderen Textfelder leer .
Wenn Sie einen Schülernamen aus der Liste Combo Box über die BenutzerFormular, dann erhält die Variable b einen Wert, indem sie die INDEX Arbeitsblatt Funktion in Kombination mit der MATCH Funktion im VBA Code, wie gezeigt.
Sie sucht den Wert mit der gleichen Syntax wie die Arbeitsblattfunktion. Wenn Sie Arbeitsblattfunktionen in VBA die VBA IntelliSense in diesem speziellen Fall nicht sehr intuitiv Daher ist es empfehlenswert, mit der Syntax vertraut zu sein, die sich aus der Kenntnis der Arbeitsblätter ergibt. Variable c zeichnet Wert durch die Verwendung der INDEX Arbeitsblatt Funktion in Kombination mit dem MATCH Funktion im VBA Code, wenn der Benutzer eine Option aus dem Kombinationsfeld auswählt.
Variable b erlangt Wert aus dem Geschlecht Spalte im Arbeitsblatt, während variabel c erhält den Wert aus der Spalte Augenfarbe im Arbeitsblatt.
Das Textfeld "Geschlecht" wird ausgefüllt mit b und das Textfeld für die Augenfarbe wird ausgefüllt mit c Wert.
Lesen Sie mehr: Excel VBA-Ereignisse (Ein vollständiger Leitfaden)
Schritt 7: Einfügen einer Befehlsschaltfläche
- Gehen Sie nun zum Arbeitsblatt mit der Bezeichnung UserForm in Ihrer Arbeitsmappe. Format wie unten dargestellt, und einfügen. das Bild, das von ExcelWIKI .
- Gehe zu Entwickler> Steuerelemente> Einfügen> ActiveX-Steuerelemente.
- einfügen. eine Schaltfläche wie gezeigt.
- Wenn die Schaltfläche ausgewählt ist, gehen zu Entwickler> Steuerelemente> Eigenschaften .
- Ändern Sie die Name der Taste zu cmdShowForm und die Bildunterschrift zu Nachschlagen Informationen für Studenten .
Schritt 8: Lookup-Code anzeigen
- Klicken Sie mit der rechten Maustaste auf . die Taste und Wählen Sie Code anzeigen wie unten dargestellt.
- Geben Sie den folgenden Code ein:
Private Sub cmdShowForm_Click() StudentLookup.Show End Sub
Schritt 9: Ausstellen des Endergebnisses
- Rückkehr zum Arbeitsblatt. Stellen Sie sicher, dass die nicht markierten Gestaltung Modus .
- Klicken Sie auf die Schaltfläche, um das Formular anzuzeigen.
- Wählen Sie den Namen eines Schülers über die Kombinationsfeld Der Code gibt automatisch das Geschlecht und die Augenfarbe des Schülers zurück.
Denken Sie daran speichern Ihre Arbeitsmappe als makrofähige Arbeitsmappe falls Sie das noch nicht getan haben, und schon haben Sie es, wir verwenden INDEX & MATCH Arbeitsblattfunktionen in Excel VBA-Code um ein Nachschlageformular zu erstellen.
Lesen Sie mehr: Excel INDEX-MATCH-Formel zur horizontalen Rückgabe mehrerer Werte
Schlussfolgerung
Excel hat viele nützliche Arbeitsblattfunktionen die genutzt werden können in VBA , so wie, mit INDEX & MATCH Arbeitsblattfunktionen in Excel VBA-Code. Diese Funktionen ermöglichen es Ihnen, Ihre VBA Code. Wenn Sie bereits wissen, wie sie in einem Standard funktionieren Excel Arbeitsblatt, dann ist die Lernkurve nicht so groß, wenn man das Wissen für VBA Der Zugriff auf die Funktionen des Arbeitsblatts, in seinem VBA Code kann eine echte Zeitersparnis sein, denn man muss keine benutzerdefinierten Funktionen für Funktionen entwickeln, die bereits vorhanden sind.
Bitte kommentieren Sie und teilen Sie uns mit, ob Sie Arbeitsblattfunktionen in Ihrem VBA-Code und Ihren Anwendungen verwenden.
Prüfungsabschnitt: Testen Sie Ihr Verständnis
1) Erstellen Sie in Spalte A eine einfache Liste mit drei Gegenständen, nämlich Mandarinen, Karotten und Orangen, und geben Sie dann in der Zelle neben jedem Gegenstand in Spalte B an, ob es sich bei den Gegenständen in Spalte A um Obst oder Gemüse handelt. Sobald Sie Ihre Beispieldaten erstellt haben, verwenden Sie die INDEX & MATCH Kombinationsfunktion, die angibt, ob Karotten Obst oder Gemüse sind.
2) Verwenden Sie diesen Datensatz von ESPN über die NFL-Cheftrainer und das jeweilige Team, das sie trainieren. Erstellen Sie ein Benutzerformular, in dem ein Benutzer den Namen eines bestimmten Trainers in ein Textfeld eingeben kann. Wenn der Benutzer auf "Senden" klickt, wird das Team, das er trainiert, in einem anderen Textfeld angezeigt. Verwenden Sie INDEX & MATCH Arbeitsblatt-Funktionskombination in Ihrem VBA-Code.