In diesem Artikel erfahren Sie, wie Sie ein Listenfeld erstellen, in dem wir mehrere Namen auswählen und die erforderlichen Daten aus den Hauptdaten abrufen können.

Lassen Sie uns mit der einfachen Übung verstehen: – Wir haben Daten erfasst, in denen wir für jeden Mitarbeiter E-Mail-ID-Details haben.

Data

Führen Sie die folgenden Schritte aus, um das Listenfeld zu erstellen, in dem Sie mehrere Optionen mithilfe des VBA-Codes auswählen können: –

Listenfeld einfügen

Um ein Listenfeld in eine Excel-Tabelle einzufügen, gehen Sie zur Registerkarte Entwickler> Klicken Sie auf Einfügen> und dann unter ActiveX Control

ArrowInsertingListBox

auf die Schaltfläche Listenfeld Klicken Sie auf der Registerkarte Entwickler auf Entwurfsmodus, um das Design zu aktivieren, und klicken Sie dann auf der Registerkarte Entwickler auf Eigenschaften. Das Dialogfeld Eigenschaften wird angezeigt.

Wählen Sie das Listenfeld aus und wechseln Sie zum Dialogfeld Eigenschaften. Klicken Sie auf die Registerkarte Kategorisiert. Wechseln Sie unter der Überschrift Verschiedenes zur Eigenschaft ListFillRange und weisen Sie den Bereich zu, der die Werte für das Listenfeld enthält.

Ändern Sie unter der Überschrift Verhalten die Eigenschaft Multiselect in 1-fmMultiSelectMulti

ArrowPropertiesDialogBox

ArrowPropertiesDialogBox-2

Fügen Sie nun zwei Befehlsschaltflächen in die Excel-Tabelle ein. Gehen Sie zur Registerkarte Entwickler> Klicken Sie auf Einfügen> und dann auf das Schaltflächensymbol unter Formularsteuerung

ArrowCommandButton

Klicken Sie mit der rechten Maustaste auf die Schaltfläche, wählen Sie die Eigenschaft Text bearbeiten und benennen Sie die beiden Schaltflächen in „Namen abwählen“ und „Senden“ um.

Drücken Sie die Taste Alt + F11, um den Visual Basic-Editor zu öffnen. Fügen Sie ein neues Modul hinzu und fügen Sie den folgenden Code in das Modul ein.

Codierung Der obige Code enthält zwei Prozeduren: GettingSelectedItems und UnselectedItems. Weisen Sie die Schaltfläche GettingSelectedItems to Submit und die Schaltfläche UnselectedItems to Unselect Names zu.

ArrowAssigningMacro

AssigningMacro

Deaktivieren Sie nach dem Zuweisen der Prozedur den Entwurfsmodus, indem Sie auf der Registerkarte Entwickler auf die Schaltfläche Entwurfsmodus klicken.

Logische Erklärung

In diesem Beispiel ist es unser Ziel, die E-Mail-ID des vom Benutzer ausgewählten Namens in der Spalte Listenfeld auf L abzurufen.

Der Benutzer kann im Listenfeld mehrere Namen auswählen. Nach Auswahl der Namen drückt der Benutzer auf die Schaltfläche „Senden“ und die E-Mail-ID, die dem ausgewählten Namen im Listenfeld entspricht, wird in der Spalte L der Excel-Tabelle angezeigt.

Wenn der Benutzer alle ausgewählten Namen im Listenfeld abwählen möchte, kann er auf die Schaltfläche „Namen abwählen“ klicken.

Um das oben genannte Ziel zu erreichen, haben wir eine Excel-Formel und ein Excel-Verfahren verwendet.

Prozedur GettingSelectedItems wurde geschrieben, um den ausgewählten Namen aus dem Listenfeld in den Bereich von K10 bis K23 zu bringen.

Um die E-Mail-ID für den ausgewählten Namen zu erhalten, haben wir die folgende Excel-Formel verwendet: – = IFERROR (VLOOKUP (K10, $ A $ 10: $ B $ 23,2,0), „“)

Fügen Sie die obige Formel in Zelle L10 ein und kopieren Sie diese Formel und fügen Sie sie im Bereich L10 bis L23 ein.

Diese Formel liefert die E-Mail-ID, indem der ausgewählte Name im Bereich A10 bis B23 nachgeschlagen wird.

Wir haben die Werte im Bereich von K10 bis K23 ausgeblendet, indem wir für Schriftart und Hintergrund der Zelle dieselbe Farbe verwendet haben.

Bitte folgen Sie unten für den Code

Option Explicit

Sub GettingSelectedItems()

'Getting selected items in ListBox1

Application.ScreenUpdating = False

'Declaring varialbes

Dim ValueSelected As String, i, r As Integer

'deleting selected values

Range("K10:K23").Select

Selection.ClearContents

'Defining listbox1 of sheet TestDialog

With Sheets("TestDialog").ListBox1

r = 0



'Using For loop for looping through all the items in List Box

For i = 0 To .ListCount - 1

'Using .selected for selecting only those value which is selected by user in listbox

If .Selected(i) Then

'Assigning selected value of List Box to Column K on the sheet

Cells(r + 10, 11).Value = .List(i)

r = r + 1

End If

Next i

End With

Range("L10").Select

End Sub

Sub UnselectedItems()

'Unselecting all the items in the list box

Application.ScreenUpdating = False

'Declaring varialbes

Dim ValueSelected As String, i As Integer

'Defining listbox1 of sheet TestDialog

With Sheets("TestDialog").ListBox1

'Using For loop for looping through all the items in List Box

For i = 0 To .ListCount - 1

'Unselecting all the items in the list

.Selected(i) = False

Next i

End With

'Deleting data from range K10 to K23

Range("K10:K23").Select

Selection.ClearContents

Range("L10").Select

End Sub

Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]