V naših prejšnjih člankih smo se naučili, kako izvleči edinstvene vrednosti iz obsega s kombinacijo različnih Excelovih funkcij. Čeprav delujejo fantastično, a so tudi zapleteni, tega ni mogoče zanikati. Če pogosto pridobivate edinstvene vrednosti, vas lahko te formule utrudijo. Tudi zaradi njih je datoteka težka in počasna.
Torej, v tem članku se bomo naučili, kako ustvariti uporabniško definirano funkcijo, ki vzame obseg kot argument in vrne samo edinstvene vrednosti iz tega območja. Kodo lahko neposredno kopirate v datoteko in jo takoj začnete uporabljati.
Koda VBA za edinstveno funkcijo:
Funkcija UNIQUES (rng As Range) As Variant () Dim list As New Collection Dim Ulist () As Variant 'Dodajanje vsake vrednosti rng v zbirko. Vklop Napaka Nadaljuj Naprej Za vsako vrednost V rng 'tukaj sta vrednost in ključ enaki. Zbirka ne dovoljuje podvojenih ključev, zato bodo ostale le edinstvene vrednosti. list.Dodajte CStr (vrednost), CStr (vrednost) Naprej Napaka Pojdi na 0 'Določitev dolžine matrike na število edinstvenih vrednosti. Ker se matrika začne z 0, odštejemo 1. ReDim Ulist (list.Count - 1, 0) 'Dodajanje edinstvene vrednosti matriki. For i = 0 To list. Count - 1 Ulist (i, 0) = list (i + 1) Next 'Tiskanje matrike UNIQUES = Ulist End Funkcija
Kopirajte kodo v urejevalnik Excela v VB.
Uporaba funkcije UNIQUE
Zgornja funkcija je uporabniško definirana funkcija večceličnih nizov. To pomeni, da morate izbrati obseg, kjer želite natisniti edinstven seznam, nato napišite formulo in pritisnite kombinacijo tipk CTRL+SHIFT+ENTER.
V zgornjem gifu imamo seznam držav. Zdaj je na seznamu veliko podvojenih držav. Želimo dobiti samo seznam edinstvenih držav.
Če želite to narediti, izberite obseg, kjer želite edinstven seznam. Zdaj napišite to formulo:
= JEDINSTVENE (A2: B7) |
Pritisnite kombinacijo tipk CTRL+SHIFT+ENTER. In to je storjeno. Vse edinstvene vrednosti so navedene v izbranem obsegu.
Opomba:Če je obseg, ki ste ga izbrali, večji od edinstvene vrednosti, bodo prikazane napake #N/A. Uporabite ga lahko kot pokazatelj konca edinstvenih vrednosti. Če na koncu seznama ne vidite #N/A, to pomeni, da je morda več edinstvenih vrednosti.
Pojasnilo kode
V tej funkciji UD sem uporabil dva glavna koncepta VBA. Zbirke in funkcija, ki jo definira uporabnik. Najprej smo uporabili zbirko za pridobitev edinstvenih vrednosti iz podanega območja.
za vsako vrednost na seznamu rng. Naslednji dodajte CStr (vrednost), CStr (vrednost)
Ker zbirke ne moremo natisniti na list, smo jo prenesli v drug niz UList.
za i = 0 Na seznam.Število - 1 Ulist (i, 0) = seznam (i + 1) Naslednji naslednji
Opomba:Indeksiranje nizov VBA se začne od 0, indeksiranje zbirke pa od 1. Zato smo odšteli 1 za matriko v zanki for in dodali 1 indeksiranju zbirke seznamov.
Na koncu smo to matriko natisnili na list.
Obstaja edinstvena funkcija, ki ni na voljo za Excel 2016, ki počne isto stvar. Ta funkcija je na voljo v Excelu 2019. Do te funkcije imajo dostop le člani insajderskega programa. S to tehniko se lahko v pisarni pokažete, da ste pred MS.
Tako da fantje, tako lahko ustvarite funkcijo, ki preprosto izvleče edinstvene vrednosti. Upam, da sem bil dovolj razložen, da ste to razumeli. Če imate kakršna koli posebna vprašanja v zvezi s tem ali katerim koli drugim vprašanjem, povezanim z Excelom, ga postavite v spodnjem razdelku za komentarje.
Kliknite spodnjo povezavo za prenos delovne datoteke:
UNIQUES funkcijaKako uporabljati zbirke VBA v Excelu | Naučite se uporabljati zbirke, ki vam lahko pomagajo pridobiti edinstvene vrednosti.
Ustvari funkcijo VBA za vrnitev matrike | Naučite se ustvariti uporabniško definirano funkcijo matrike, ki vrne matriko.
Nizovi v Excelu Formul | Preberite, kaj so matrike v Excelu.
Kako ustvariti uporabniško določeno funkcijo prek VBA | Naučite se ustvarjati uporabniško določene funkcije v Excelu
Uporaba uporabniško določene funkcije (UDF) iz drugega delovnega zvezka z uporabo VBA v programu Microsoft Excel | Uporabite uporabniško določeno funkcijo v drugem delovnem zvezku programa Excel
Vrnite vrednosti napak iz uporabniško določenih funkcij z uporabo VBA v Microsoft Excelu | Preberite, kako lahko vrnete vrednosti napak iz uporabniško določene funkcije