Kode eller programmer en datavalideringsliste - eksempler på VBA -kode

Indholdsfortegnelse

Denne vejledning viser, hvordan du bruger datavalidering til at arbejde med rullelister i Excel ved hjælp af VBA.

Excel -datavalidering giver dig mulighed for at begrænse, hvilke værdier der kan indtastes i en celle eller et område. Du kan begrænse poster til positive heltal, tekst, datoer og meget mere. I denne vejledning skal vi se på, hvordan du opretter en rulleliste med datavalidering i en celle ved hjælp af VBA.

Bemærk: Et alternativ til en rulleliste med datavalidering er et ListBox-objekt. ListBoxes kan tilføjes til Excel -regneark. ListBoxes kan udløse makroer, der kører hver gang en ListBox -værdi ændres. ListBoxes bruges også i VBA -brugerformularer.

Oprettelse af en rulleliste ved hjælp af VBA

Vi har teksten Frugt i celle A1, og vi skal oprette en rulleliste i celle A2 med fem poster.

Vi vil bruge metoden Validation.Add og angive, at parameteren Type er xlValidateList. Du kan tilføje de specifikke emner, du gerne vil have på din liste, ved hjælp af parameteren Formula1.

Følgende kode vil oprette en rulleliste med datavalidering i celle A2:

123456 Sub DropDownListinVBA ()Område ("A2"). Validation.Add Type: = xlValidateList, AlertStyle: = xlValidAlertStop, _Formula1: = "Appelsin, æble, mango, pære, fersken"Afslut Sub

Resultatet er:

Befolk en rulleliste fra et navngivet område i VBA

Du kan bruge et navngivet område, der indeholder elementerne, til at udfylde en rulleliste i VBA. Vi har det navngivne område Dyr vist nedenfor:

Vi er nødt til at indstille Formula1 -parameteren lig med det navngivne område. Følgende kode vil oprette en rulleliste med datavalidering i celle A7 baseret på elementerne i det navngivne område:

123456 Sub PopulateFromANamedRange ()Område ("A7"). Validation.Add Type: = xlValidateList, AlertStyle: = xlValidAlertStop, _Formula1: = "= Dyr"Afslut Sub

Resultatet er:

Fjernelse af rullelisten

Du kan bruge metoden Validation.Delete til at fjerne rullelisten fra cellen. Følgende kode ville fjerne rullelisten fra celle A7 i eksemplet ovenfor:

12345 Sub RemoveDropDownList ()Område ("A7"). Validering. SletAfslut Sub
wave wave wave wave wave