VBA žodyno objektai

Naudojant VBA žodyną

VBA žodynas veikia panašiai kaip rinkimo objektas, tačiau jis turi daugiau savybių ir metodų bei suteikia daugiau lankstumo

Žodynas saugo duomenis atmintyje ir gali būti lengvai valdomas. Nereikia automatinio skaičiavimo, atsarginės kopijos fone ir ekrano atnaujinimo, todėl jūsų kodas bus paleistas žymiai greičiau.

Žodyno objektas veikia panašiai kaip įprastas žodynas, kurį naudosite, jei norite sužinoti žodžio reikšmę. Kiekvienas žodyno objekto įrašas turi „rakto“ reikšmę ir „elemento“ reikšmę. Jūs naudojate raktą „raktas“, kad ieškotumėte elemento vertės žodyno objekte, panašiai kaip ir įprastą žodyną.

Dėl to, kaip veikia žodyno objektas, visos pagrindinės vertės turi būti unikalios, kaip ir įprastame žodyne. Įsivaizduokite, jei atidarę įprastą žodyną ieškotumėte žodžio reikšmės ir rastumėte žodį, išvardytą daugiau nei vieną kartą su dviem visiškai skirtingais apibrėžimais. Jūs būtumėte labai supainioti!

Pagrindinės vertės paprastai yra tekstas arba skaičiai arba abu. Vartotojams dažnai lengviau įsiminti klavišų pavadinimus kaip tekstą, o ne tik skaičius.

Palyginus su kolekcijos objektu, kolekcijos objektas yra tik skaitomas. Jis turi tik du metodus (pridėti ir pašalinti) ir dvi ypatybes (skaičius ir elementas). Pridėjus elementą prie kolekcijos objekto, jį galima pašalinti, bet neredaguoti, o tai yra sudėtinga procedūra, jei reikia pakeisti elemento vertę.

Žodyno objekto dydis automatiškai pasikeis, kad atitiktų jame esančių elementų skaičių. Jo nereikia apibrėžti pagal dydį, kaip ir įprastas masyvas

Žodyno objektas yra vienmatis, o duomenų tipas-„Variantas“, todėl į jį galima įvesti bet kokį duomenų tipą, pvz. skaičius, tekstas, data

VBA žodynas nėra gimtoji „Excel“ ir jį reikia pasiekti naudojant ankstyvą arba vėlyvą įrišimą, kai apibrėžiamas žodyno objektas

123 Sub EarlyBindingExample ()„Dim MyDictionary As New Scripting.Dictionary“Pabaiga Sub
1234 Sub LateBindingExample ()„Dim MyDictionary“ kaip objektasNustatyti MyDictionary = CreateObject ("Scripting.Dictionary")Pabaiga Sub

Jei naudojate ankstyvą įrišimą, turite pridėti nuorodą į „Microsoft Scripting Runtime“ biblioteką

Tai galite padaryti pasirinkę „Įrankiai | Nuorodos “„ Visual Basic Editor “(VBE) lango meniu juostoje ir iššokantis langas su galimų bibliotekų sąrašu.

Slinkite žemyn iki „Microsoft Scripting Runtime“ ir pažymėkite šalia jo esantį langelį. Spustelėkite Gerai, o ši biblioteka dabar yra jūsų VBA projekto dalis ir gali būti pateikta nuoroda naudojant ankstyvą įrišimą. Visuose kodo pavyzdžiuose šiame straipsnyje bus naudojamas ankstyvas įrišimas.

Jūsų kodas bus paleistas žymiai greičiau su ankstyvu susiejimu, nes jis yra sudarytas iš anksto. Vėlai susiejant, objektas turi būti sukompiliuotas vykdant kodą

„Scripting Runtime“ bibliotekoje yra „Intellisense“. Rašydami kodą pamatysite galimų metodų ir ypatybių sąrašus, kurie padės išvengti rašybos klaidų, dėl kurių jūsų programoje atsiras klaidų

Be to, jei paspausite F2 VBE ir pasirinksite „Scripting“ biblioteką, pamatysite visus galimus metodus ir ypatybes bei kiekvienam reikiamus parametrus

„Excel“ programos, kurioje yra žodynas, platinimas

Kaip jau minėta, „Scripting Runtime“ biblioteka nėra „Excel VBA“ dalis, taigi, jei platinate savo programą kitiems vartotojams, jie turi turėti prieigą prie „Scripting Runtime“ bibliotekos savo kompiuteryje. Jei jų nėra, įvyks klaida.

Patartina įtraukti tam tikrą VBA kodą, kad patikrintumėte, ar ši biblioteka yra įkeliant „Excel“ programą. Norėdami tai padaryti įvykyje „Darbaknygės atidarymas“, galite naudoti komandą „Dir“

Failo vieta yra C: \ Windows \ SysWOW64 \ scrrun.dll

Žodyno objekto apimtis

Žodyno objektas pasiekiamas tik atidarius „Excel“ darbaknygę. Išsaugojus darbo knygą jis neišsaugomas.

Jei jūsų žodynas bus prieinamas visoms jūsų modulio procedūroms, turite jį deklaruoti (Dim) pačiame modulio viršuje esančioje skiltyje Deklaruoti

Jūs apibrėžiate jį kaip visuotinį objektą, jei norite, kad jūsų žodynas būtų naudojamas visame kode.

1 Pasaulinis mano žodynas kaip naujas žodynas

Gyvenimas ir skaitymas iš jūsų žodyno

Norėdami pradėti, turite sukurti žodyną, užpildyti jį kai kuriais duomenimis ir pakartoti jį, kad įrodytumėte, jog duomenys egzistuoja

1234567891011 Sub PopulateReadDictionary ()„Dim MyDictionary As New Scripting.Dictionary“„MyDictionary“. Pridėkite „MyItem1“, 10MyDictionary. Pridėti „MyItem2“, 20„MyDictionary“. Pridėkite „MyItem3“, 30Jei n = 0 į „MyDictionary“. Skaičius - 1MsgBox MyDictionary.Keys (n) & "" & MyDictionary.It elementai (n)Kitas nPabaiga Sub

Šis kodas sukuria naują žodyno objektą, pavadintą „MyDictionary“, ir užpildo jį trimis elementais. Pridėjimo metodas turi du parametrus - raktą ir elementą, ir jie abu yra būtini

Rakto ir elemento duomenų tipai yra skirtingi, todėl jie priims bet kokio tipo duomenis - skaitinius, tekstinius, datos ir kt

Pirmąjį žodyno elementą galima pridėti taip:

1 MyDictionary.Add 10, "MyItem1"

Reikšmės buvo pakeistos tarp rakto ir elemento, tačiau tai vis tiek veiks, nors paieškos klavišas dabar taps 10.

Tačiau svarbu suprasti, kad pagrindinė reikšmė yra paieškos vertė žodyne. Jis veikia labai panašiai kaip „Excel“ funkcija VLOOKUP. Kadangi visi raktai turi turėti unikalias reikšmes, galite nurodyti rakto vertę ir iškart grąžinti to rakto elemento vertę.

Atminkite, kad žodyno rodyklė prasideda nuo 0, todėl turite atimti 1 iš žodžių skaičiaus, naudojamo cikle „For… Next“

Taip pat galite naudoti už … Kiekvieną kilpą, kad perskaitytumėte žodyno reikšmes:

1234567891011 Sub PopulateReadDictionary ()Dim MyDictionary As New Scripting. Žodynas, aš kaip variantas„MyDictionary“. Pridėkite „MyItem1“, 10MyDictionary. Pridėti „MyItem2“, 20„MyDictionary“. Pridėkite „MyItem3“, 30Kiekvienam aš savo žodyne. Raktai„MsgBox I“ ir „“ ir „MyDictionary“ (I)Toliau ašPabaiga Sub

Šis kodas kartos kiekvieną elementą ir parodys elemento raktą bei elemento vertę

Naudojant prekės indekso numerį

Norėdami sužinoti reikšmę, galite naudoti rakto ar elemento indekso numerį

123456789101112 Antrinis indeksasNumeriai ()„Dim MyDictionary As New Scripting.Dictionary“MyDictionary.CompareMode = Teksto palyginimas„MyDictionary“. Pridėkite „1 elementas“, 10MyDictionary.Pridėti "Item2", 20„Mano žodynas“. Pridėkite „3 elementas“, 30„MsgBox MyDictionary“. Raktai (2)„MsgBox MyDictionary“. Elementai (1)Pabaiga Sub

Šis kodas grąžins raktą „item3“, kai indeksas prasideda nuo 0, o elemento vertė yra 20

Naudodami indekso numerius, galite kreiptis į atskiras raktų ar elementų reikšmes kolekcijose „Keys“ arba „Items“.

Žodyno filtravimas

Nėra tiesioginio metodo, kaip tai padaryti, tačiau parašyti kodą yra gana paprasta:

1234567891011 Subfiltras Žodynas ()„Dim MyDictionary As New Scripting.Dictionary“„MyDictionary“. Pridėkite „AAItem1“, 10MyDictionary. Pridėti „BBItem2“, 20„MyDictionary“. Pridėkite „BBItem3“, 30Kiekvienam filtrui („MyDictionary.Keys“, „BB“)„MsgBox“ mano žodynas. Elementas (I)Toliau ašPabaiga Sub

Filtro vertė veikia tik nuo rakto vertės pradžios. Filtre negalima naudoti pakaitos simbolių. Šis kodas grąžins dviejų elementų reikšmes su raktų pavadinimais, prasidedančiais „BB“

Tai suteiks jums žodyno pogrupį pagal jūsų filtro vertę, kurį galėsite perkelti į kitą žodyną ar darbalapį. Kruopščiai planuodami raktų pavadinimus ir įsitikindami, kad prie kiekvieno iš jų yra prasmingas priešdėlis, žodyną lengvai galėsite padalyti į įvairias sudedamąsias dalis.

Rakto elemento vertės keitimas

Žodyno objektas turi didelį pranašumą prieš kolekciją tuo, kad elemento vertę galima keisti pvz.

1 MyDictionary ("MyItem4") = "40"

Kolekcijoje turėsite ištrinti tą įrašą ir tada jį sukurti iš naujo.

Štai kodo pavyzdys:

12345678910111213 Sub PopulateReadDictionary ()„Dim MyDictionary As New Scripting.Dictionary“„MyDictionary“. Pridėkite „MyItem1“, 10MyDictionary. Pridėti „MyItem2“, 20„MyDictionary“. Pridėkite „MyItem3“, 30MyDictionary ("MyItem2") = "25"MyDictionary ("MyItem4") = "40"Jei n = 0 į „MyDictionary“. Skaičius - 1MsgBox MyDictionary.Keys (n) & "" & MyDictionary.It elementai (n)Kitas nPabaiga Sub

Aukščiau pateiktas kodas žodyne nustato tris elementus ir pakeičia „MyItem2“ reikšmę nuo 20 iki 25.

Taip pat pakeičiama „MyItem4“ reikšmė į 40. Atminkite, kad kodo pridėjimo teiginiuose „MyItem4“ nebuvo pridėta. Pakeitus neegzistuojančio rakto vertę, jis automatiškai sukuriamas. Tai labai patogu, nes nesuveikia jokia klaida, tačiau tai reiškia, kad turite būti atsargūs su savo raktų pavadinimais. Atsitiktinė rašybos klaida rakto pavadinime reikštų, kad sukuriamas naujas raktas, o pradinio rakto pavadinimas vis tiek turės seną reikšmę.

Tai gali lengvai sukelti žodyno objekto vientisumo problemų.

Išbandykite, ar raktas egzistuoja

Galite patikrinti, ar žodyne yra pagrindinė vertė

123456789 Sub CheckExistsDictionary ()„Dim MyDictionary As New Scripting.Dictionary“„MyDictionary“. Pridėkite „MyItem1“, 10MyDictionary. Pridėti „MyItem2“, 20„MyDictionary“. Pridėkite „MyItem3“, 30„MsgBox MyDictionary.Exists“ („MyItem8“)Pabaiga Sub

Kodas prideda tris elementus prie naujo žodyno objekto ir tada patikrina raktą („MyItem8“), kurio nėra žodyne. Tai grąžina klaidingą, bet jei būtų panaudotas vienas iš esamų raktų, būtų grąžinta tiesa

Pakaitos simboliai nepriimami. Pagal numatytuosius nustatymus paieškos tekste taip pat skiriamos didžiosios ir mažosios raidės, tačiau tai galima pakeisti (žr. Vėliau straipsnyje)

Kelių verčių naudojimas žodyne

Skirtingai nuo masyvo, žodyno objektas yra tik vieno matmens. Tai gali sukelti problemų, jei turite keletą vertybių, kurias norite sugriauti.

Vienas iš būdų yra sujungti kiekvieną elemento vertę, naudojant tarpų ženklą tarp kiekvienos vertės, pvz. „|“

12345678910111213141516171819202122232425262728293031323334 Sub MultipleValues ​​()„Sukurkite žodyno objektą ir kintamuosius„Dim MyDictionary“ kaip naujas scenarijus. Žodynas, V1 kaip sveikasis skaičius, V2 kaip eilutėDim V3 kaip data, temp kaip eilutė, N kaip sveikasis skaičius„Įveskite 3 kintamuosius, kad parodytumėte kelias reikšmesV1 = 5V2 = "Kelių verčių pavyzdys"V3 = "2020 m. Liepos 22 d."„Pridėkite susietą reikšmę prie žodyno naudodami„ | “ ribotuvasMyDictionary.Pridėti "MyMultipleItem", V1 & "|" & V2 & "|" & V3 & "|"„Užfiksuokite susietą žodyno reikšmę iš žodyno į kintamąjįTemp = MyDictionary ("MyMultipleItem")„Pakartokite sujungtą eilutę, kad atskirtumėte atskiras vertesDaryk„Raskite ribotuvo padėtįN = „InStr“ („Temp“, „|")„Jei nebėra ribų, išeikite iš Do kilposJei N = 0, išeikite iš „Do“„Rodyti tekstą, palyginti su rasto skyriklio padėtimi„MsgBox“ kairėn (temp, N - 1)„Sutrumpintą eilutę sutrumpinkite iki kito simbolio po rasto skirtukoTemp = vidutinė (temp, N + 1)KilpaPabaiga Sub

Kitas būdas išspręsti šią problemą yra suprojektuoti savo antrinių scenarijų sistemą raktų pavadinimams. Nėra jokios priežasties, kodėl neturėtumėte naudoti skliaustų ir skaičių raktų pavadinimuose

1234567891011 Sub MultipleValues ​​()„Dim MyDictionary As New Scripting.Dictionary“„MyDictionary“. Pridėti „Keli (1)“, 5MyDictionary.Add "Keli (2)", "Kelių verčių pavyzdys"MyDictionary.Pridėti „Keli (3)“, „2020 m. Liepos 22 d.“Jei N = 1–3„MsgBox MyDictionary“ („Keli („ & N & “)“)Kitas N.Pabaiga Sub

Šis kodas į žodyną prideda tris raktus, tačiau kiekvieno rakto pavadinimo skliausteliuose yra antrojo scenarijaus numeris. Tada galite kreiptis į rakto pavadinimą, bet naudodami antrinio scenarijaus numerį. Tai labai panašu į masyvo objekto naudojimą

Elementų trynimas

Galite pašalinti atskirus elementus pagal pagrindinę vertę

1 MyDictionary.Remove („MyItem2“)

Atminkite, kad raktų pavadinimai yra unikalūs, todėl pašalinama tik ta konkreti rakto ir elemento vertė

Taip pat galite visiškai išvalyti žodyną

1 MyDictionary.RemoveAll

Štai pavyzdys, kaip naudoti „Pašalinti“ VBA:

12345678910111213141516 Sub RemoveValues ​​()„Dim MyDictionary As New Scripting.Dictionary“„MyDictionary“. Pridėkite „1 elementas“, 10MyDictionary.Pridėti "Item2", 20„Mano žodynas“. Pridėkite „3 elementas“, 30MyDictionary.Remove ("2 elementas")Jei N = 0 į „MyDictionary“. Skaičius - 1MsgBox MyDictionary.Keys (N) & "" & MyDictionary.It elementai (N)Kitas N.MyDictionary.RemoveAll„MsgBox MyDictionary.Count“Pabaiga Sub

Kodas į žodyną prideda tris elementus, o tada pašalina elementą „2“. Tada jis kartojasi per žodyną, kad įrodytų, kad „2 elementas“ nebeegzistuoja

Galiausiai kodas pašalina visus žodyno elementus ir parodo žodynų skaičių, kuris dabar yra lygus nuliui.

Keičiant paieškų didžiųjų ir mažųjų raidžių jautrumą

Jei ieškote rakto, jis pagal numatytuosius nustatymus skiria didžiąsias ir mažąsias raides. Tačiau, norėdami tai pakeisti, galite naudoti nuosavybę „CompareMode“.

Atminkite, kad tai turi būti padaryta iš karto, kai sukuriate žodyno objektą, bet prieš įtraukdami bet kokius duomenis į žodyną. Nustačius palyginimo režimą, jo negalima pakeisti tame žodyne.

12345678910 Sub ChangeCaseSensitivity ()„Dim MyDictionary As New Scripting.Dictionary“MyDictionary.CompareMode = Teksto palyginimas„MyDictionary“. Pridėkite „1 elementas“, 10MyDictionary.Pridėti "Item2", 20„Mano žodynas“. Pridėkite „3 elementas“, 30„MsgBox MyDictionary.Exists“ („elementas2“)Pabaiga Sub

Šiame pavyzdyje palyginimo režimas nustatytas kaip „TextCompare“, o tai reiškia, kad jis neskiria didžiųjų ir mažųjų raidžių. Pavyzdžio pabaigoje pateiktas teiginys „Egzistuoja“ grąžins „True“, nepaisant to, kad visas paieškos tekstas rašomas mažosiomis raidėmis.

„Excel“ yra tik dvi vertės, kurias galima naudoti palyginimo režimui. Dvejetainis palyginimas skiria didžiąsias ir mažąsias raides, o tekstinis palyginimas - didžiosios ir mažosios raidės

Jei jūsų palyginimo režimas nustatytas kaip dvejetainis palyginimas, turite būti atsargūs pavadindami raktus. Jei nustatote pavadinimą, kad pirmas simbolis būtų didžiosios raidės, tada, kai keičiate vertę, turite įsitikinti, kad pirmąjį simbolį vis tiek rašote didžiosiomis raidėmis. Jei pradėsite nuo mažųjų raidžių, tai bus aiškinama kaip naujas raktas ir gali lengvai sukelti painiavą bei klaidas jūsų žodyne

Atminkite, kad jei pakeisite rakto vertę ir rakto pavadinimas neegzistuoja dėl naudojamo dvejetainio palyginimo, į žodyną bus įtrauktas naujas raktas ir vertė.

Jei vietoj to naudosite teksto palyginimą, visi reikšmių pakeitimai bus perkelti į raktą, neatsižvelgiant į didžiąsias ir mažąsias raides. Jei bandysite pridėti tą patį elementą, bet parašytą kitu simboliu, gausite klaidą, nes jis jau egzistuoja.

Žodyno rūšiavimas

Kaip ir rinkimo objekto atveju, nėra jokio būdo, kaip būtų galima rūšiuoti žodyną, naudojant raktus ar elementų reikšmes.

Tačiau, kadangi VBA kodas yra „Excel“ darbaknygėje, žodyno duomenis galima perkelti į „Excel“ lentelės pavidalu ir tada pritaikyti „Excel“ rūšiavimo funkciją. Tada žodyną galima išvalyti naudojant „RemoveAll“ ir surūšiuotas vertes pridėti iš darbalapio.

Šis kodas surūšiuos raktus ir elementų reikšmes

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 Sub SortMyDictionary ()„Dim MyDictionary“ kaip naujas žodynasDim skaitiklis kaip ilgai„Sukurkite žodyną su atsitiktinės eilės elementaisMyDictionary.Pridėti "Item5", 5MyDictionary.Pridėti "Item2", 15MyDictionary.Pridėti "Item4", 11„MyDictionary“. Pridėkite „1 elementas“, 2MyDictionary. Pridėti „Item3“, 19„Užfiksuokite žodžių skaičių žodyne, kad galėtumėte juos naudoti ateityjeSkaitliukas = MyDictionary.Count„Pakartokite žodyną, nukopijuodami kiekvieną raktą ir elementą į eilutę„ Sheet1 “(A stulpelis)Jei N = 0 į „MyDictionary“. Skaičius - 1Skaičiuoklės ("Sheet1"). Ląstelės (N + 1, 1) = MyDictionary.Keys (N)Skaičiuoklės ("Sheet1"). Ląstelės (N + 1, 2) = MyDictionary.Elements (N)Kitas N.„Suaktyvinkite„ Sheet1 “ir naudokite„ Excel “rūšiavimo tvarką, kad surūšiuotumėte duomenis didėjančia tvarkaSkaičiuoklės („Sheet1“). AktyvintiDiapazonas („A1: B“ ir „MyDictionary.Count“). PasirinkiteActiveWorkbook.Worksheets ("Sheet1"). Rūšiuoti.SortFields.ClearActiveWorkbook.Worksheets ("Sheet1"). Sort.SortFields.Add2 Key: = Diapazonas (_"A1: A5"), SortOn: = xlSortOnValues, Tvarka: = xlAugantis, duomenų pasirinkimas: = _xlSortNormalSu „ActiveWorkbook.Worksheets“ („Sheet1“). Rūšiuoti.SetRange diapazonas ("A1: A5").Header = xlGuess.MatchCase = Netiesa.Orientation = xlTopToBottom.SortMethod = xlPinYin.TaikytiPabaiga su„Išvalykite visus žodyno elementusMyDictionary.RemoveAll„Nukopijuokite langelio vertes atgal į tuščią žodyno objektą, naudodami„ ciklo “išsaugotą vertę (skaitiklis)N = 1 skaitikliuiMyDictionary.Add Sheets ("Sheet1"). Ląstelės (N, 1). Vertė, Sheets ("Sheet1"). Ląstelės (N, 2). ValueKitas N.„Pakartokite žodyną, kad įrodytumėte, kokia tvarka dabar yra daiktaiJei N = 0 į „MyDictionary“. Skaičius - 1MsgBox MyDictionary.Keys (N) & "" & MyDictionary.It elementai (N)Kitas N.„Išvalykite darbalapį (1 lapas) - jei reikia, taip pat ištrinkiteSkaičiuoklės („Sheet1“). Diapazonas (Cells (1, 1), Cells (Counter, 2)). ClearPabaiga Sub

Šis kodas sukuria žodyną su penkiomis atsitiktinės eilės reikšmėmis. Jis fiksuoja elementų skaičių į kintamąjį ir tada kartojasi per žodyną, perkeldamas raktų ir elementų reikšmes į atskirus darbalapio stulpelius.

Tada jis rūšiuoja atsisiųstą diapazoną, naudodamas A stulpelį kaip rūšiavimo lauką. Žodynas visiškai išvalomas naudojant „RemoveAll“ metodą, o kodas kartoja darbalapio langelio vertes ir vėl jas prideda prie žodyno.

Galiausiai kodas kartojasi per žodyną, rodydamas sujungtas raktų ir elementų vertes, įrodančias, kad rūšiavimas veikė.

Pakeitus rūšiavimo kodo parametrus, duomenys galėtų būti rūšiuojami pagal elementų reikšmes.

Raktų sąrašo kopijavimas į darbalapį

Galite nukopijuoti visų pagrindinių verčių sąrašą į darbalapį naudodami šį kodą:

12345678910 Sub CopyKeyList ()„Dim MyDictionary As New Scripting.Dictionary“MyDictionary.CompareMode = Teksto palyginimas„MyDictionary“. Pridėkite „1 elementas“, 10MyDictionary.Pridėti "Item2", 20„Mano žodynas“. Pridėkite „3 elementas“, 30Skaičiuoklės ("Sheet1"). Diapazonas ("A1"). Vertė = Prisijungti (MyDictionary.Keys, vbLf)Pabaiga Sub

Rezultatas bus pateiktas jūsų darbalapyje:

Galite nukopijuoti visą žodyną į darbalapį naudodami šį kodą:

12345678910 Sub CopyIntoWorksheet ()„Dim MyDictionary As New Scripting.Dictionary“„MyDictionary“. Pridėkite „1 elementas“, 10MyDictionary.Pridėti "Item2", 20„Mano žodynas“. Pridėkite „3 elementas“, 30Diapazonas ("A1"). Keisti dydį (MyDictionary.Count, 1) = WorksheetFunction.Transpose (MyDictionary.Keys)Diapazonas ("B1"). Keisti dydį (MyDictionary.Count, 1) = WorksheetFunction.Transpose (MyDictionary.Items)Pabaiga Sub

Jūsų darbalapis atrodys taip:

Žodžio palyginimas su kolekcija

Žodynas yra greitesnis nei rinkinys.

Kolekcija jau yra VBA. Žodynui reikia nuorodos į „Microsoft“ scenarijų žodyną arba objektą, sukurtą naudojant vėlyvą įrišimą

Kolekcijos elementą galima parašyti tik vieną kartą ir perskaityti daug kartų. Žodyne elemento vertę galima pakeisti. Naudojant kolekciją, elementas turi būti pašalintas, o tada pakeistas elementas vėl pridėtas.

Kolekcija veikia pagal indekso reikšmes, todėl gali būti sunku išsiaiškinti, kuri indekso vertė kur priklauso. Žodynas naudoja unikalias pagrindines vertes, kurios naudojamos elementui surasti

Atskiro elemento gavimas didelėje kolekcijoje yra lėtesnis nei žodyno

Kolekcijoje raktai naudojami tik duomenims ieškoti ir jų negalima atkurti. Žodyne raktų buvimą galima patikrinti ir naudoti tam tikram elementui surasti.

Kolekcijose skiriamos didžiosios ir mažosios raidės ir to negalima pakeisti. Žodyne palyginimo režimą galima nustatyti taip, kad būtų skiriamos didžiosios ir mažosios raidės

Kolekcijoje pagrindinės vertės turi būti eilutės. Žodyne jie gali būti bet kokio tipo duomenys, pvz. skaičių, datą ir kt

Pašalinus visus kolekcijos elementus reikia iš naujo apibrėžti kolekcijos objektą. Žodynas tam turi „RemoveAll“ metodą.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave