Validation Liste ignoriert leere Zellen mit VBA in Microsoft Excel
In diesem Artikel verwenden wir das Auswahländerungsereignis des Arbeitsblatts, um eine Validierungsliste zu erstellen, wobei leere Werte ignoriert werden.
Die Rohdaten bestehen aus dem Produktnamen und einigen leeren Zellen in Spalte A.
Wir möchten eine Validierungsliste für den Produktnamen erstellen und dabei leere Zellen ignorieren.
Logische Erklärung
In diesem Artikel haben wir das Auswahländerungsereignis des Arbeitsblatts verwendet, um eine Validierung in Zelle I12 zu erstellen. Zunächst erstellen wir eine Zeichenfolge, die alle durch Kommas getrennten Produktnamen enthält und leere Zellen ignoriert. Dann fügen wir diese Zeichenfolge zur Zellvalidierung hinzu.
Code Erklärung
IntLastRow = .Cells (Rows.Count, 1) .End (xlUp) .Row Der obige Code wird verwendet, um die Zeilennummer der letzten Zelle abzurufen.
Wenn nicht leer (.Cells (IntRow, 1)), dann ‚Verketten von nicht leeren Werten in der ersten Spalte Txt = Txt & .Cells (IntRow, 1) & „,“
Ende Wenn Der obige Code zum Erstellen einer Zeichenfolge von Produktnamen verwendet wird, wobei leere Zellen ignoriert werden.
Mit Bereich („I12“). Validierung ‚Löschen einer vorherigen Validierung aus der Zelle. Löschen‘ Hinzufügen der Validierung .Add _ Type: = xlValidateList, _ AlertStyle: = xlValidAlertStop, _ Operator: = xlBetween, _ Formula1: = Txt End With Der obige Code wird verwendet, um der Zelle I12 eine Validierung zuzuweisen.
Bitte folgen Sie unten für den Code
Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Declaring variables Dim IntRow As Integer, IntLastRow As Integer Dim Txt As String With Worksheets("Main") 'Finding the row number of last cell IntLastRow = .Cells(Rows.Count, 1).End(xlUp).Row 'Looping from 10th row to Last row For IntRow = 10 To IntLastRow 'Creating text for validation list If Not IsEmpty(.Cells(IntRow, 1)) Then 'Concatening non blank values in the first column Txt = Txt & .Cells(IntRow, 1) & "," End If Next IntRow End With Txt = Left(Txt, Len(Txt) - 1) 'Adding validation to cell I12 With Range("I12").Validation 'Deleting any previous validation from the cell .Delete 'Adding the validation .Add _ Type:=xlValidateList, _ AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, _ Formula1:=Txt End With 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]