Iepriekšējos rakstos mēs esam iemācījušies iegūt unikālas vērtības no diapazona, izmantojot dažādu Excel funkciju kombināciju. Lai gan tie darbojas fantastiski, taču ir arī sarežģīti, to nevar noliegt. Ja jūs bieži iegūstat unikālas vērtības, šīs formulas var jūs nogurdināt. Tie arī padara failu smagu un lēnu.
Tātad, šajā rakstā mēs uzzināsim, kā izveidot lietotāja definētu funkciju, kas kā argumentu ņem diapazonu un atgriež tikai unikālas vērtības no šī diapazona. Jūs varat tieši nokopēt kodu savā failā un nekavējoties sākt to lietot.
VBA kods unikālai funkcijai:
Funkcija UNIQUES (rng kā diapazons) kā variants () Dim saraksts kā jauna kolekcija Dim Ulist () kā variants 'Katras rng vērtības pievienošana kolekcijai. Par kļūdu Turpiniet tālāk katrai rng 'vērtībai šeit vērtība un atslēga ir vienādi. Kolekcija neļauj dublēt atslēgas, tāpēc paliks tikai unikālas vērtības. saraksts. Pievienot CStr (vērtība), CStr (vērtība) Tālāk uz kļūdu GoTo 0 'Masīva garuma noteikšana līdz unikālo vērtību skaitam. Tā kā masīvs sākas no 0, mēs atņemam 1. ReDim Ulist (list.Count - 1, 0) 'Unikālās vērtības pievienošana masīvam. I = 0 Sarakstam. Skaitlis - 1 Ulists (i, 0) = saraksts (i + 1) Tālāk 'Masīva drukāšana UNIQUES = Ulist End Function
Kopējiet kodu uz Excel VB redaktoru.
Funkcijas UNIQUE izmantošana
Iepriekš minētā funkcija ir lietotāja definēta daudzšūnu masīva funkcija. Tas nozīmē, ka jums jāizvēlas diapazons, kurā vēlaties drukāt unikālo sarakstu, pēc tam uzrakstiet formulu un nospiediet taustiņu kombināciju CTRL+SHIFT+ENTER.
Iepriekš redzamajā gifā mums ir valstu saraksts. Tagad sarakstā ir daudz dublētu valstu. Mēs vēlamies iegūt tikai unikālo valstu sarakstu.
Lai to izdarītu, atlasiet diapazonu, kurā vēlaties unikālo sarakstu. Tagad uzrakstiet šo formulu:
= UNIKĀLI (A2: B7) |
Nospiediet taustiņu kombināciju CTRL+SHIFT+ENTER. Un tas tiek darīts. Visas unikālās vērtības ir norādītas atlasītajā diapazonā.
Piezīme:Ja atlasītais diapazons ir lielāks par unikālo vērtību, tad tiks parādīta kļūda #N/A. To var izmantot kā norādi par unikālo vērtību pārtraukšanu. Ja saraksta beigās neredzat #N/A, tas nozīmē, ka var būt vairāk unikālu vērtību.
Koda skaidrojums
Šajā UD funkcijā esmu izmantojis divus galvenos VBA jēdzienus. Kolekcijas un lietotāja definēta masīva funkcija. Pirmkārt, mēs esam izmantojuši kolekciju, lai iegūtu unikālās vērtības no sniegtā diapazona.
katrai vērtībai sarakstā rng. Pievienojiet CStr (vērtība), CStr (vērtība) Tālāk
Tā kā mēs nevaram izdrukāt kolekciju uz lapas, mēs to pārsūtījām uz citu masīva UL sarakstu.
par i = 0 Uzskaitīt. Skaits - 1 Ulists (i, 0) = saraksts (i + 1) Nākamais
Piezīme:VBA masīvu indeksēšana sākas no 0, un kolekciju indeksācija sākas ar 1. Tāpēc mēs esam atņēmuši 1 masīvam cilpai un pievienojuši 1 sarakstu kolekcijas indeksēšanai.
Galu galā mēs šo masīvu esam izdrukājuši uz lapas.
Ir unikāla funkcija, kas nav pieejama programmai Excel 2016 un kas dara to pašu. Šī funkcija ir pieejama programmā Excel 2019. Šai funkcijai var piekļūt tikai iekšējās programmas dalībnieki. Izmantojot šo paņēmienu, jūs varat parādīt birojā, ka esat priekšā MS.
Jā, puiši, šādi jūs varat izveidot funkciju, kas vienkārši iegūst unikālas vērtības. Es ceru, ka es biju pietiekami izskaidrojošs, lai jūs to saprastu. Ja jums ir kādi konkrēti jautājumi par šo vai kādu citu ar excel VBA saistītu jautājumu, uzdodiet to komentāru sadaļā zemāk.
Noklikšķiniet uz zemāk esošās saites, lai lejupielādētu darba failu:
UNIQUES funkcijaKā izmantot VBA kolekcijas programmā Excel | Uzziniet kolekcijas izmantošanu, kas var palīdzēt iegūt unikālas vērtības.
Izveidojiet VBA funkciju masīva atgriešanai | Uzziniet, kā izveidot lietotāja definētu masīva funkciju, kas atgriež masīvu.
Masīvi programmā Excel Formul | Uzziniet, kādi masīvi ir pieejami programmā Excel.
Kā izveidot lietotāja definētu funkciju, izmantojot VBA | Uzziniet, kā programmā Excel izveidot lietotāja definētas funkcijas
Lietotāja definētas funkcijas (UDF) izmantošana no citas darbgrāmatas, izmantojot VBA programmā Microsoft Excel | Izmantojiet lietotāja definētu funkciju citā Excel darbgrāmatā
Atgriež kļūdas vērtības no lietotāja definētām funkcijām, izmantojot Microsoft Excel VBA Uzziniet, kā atgriezt kļūdu vērtības no lietotāja definētas funkcijas