VBA-ordbok

Excel VBA-ordbok

Med hjälp av VBA Dictionary kan vi gruppera alla typer av data i en ordbok för att få tillgång till alla artiklar med en enda variabel. Vi kan använda ordboken för att skapa en samling nyckel-värdekombinationer. När objektet är länkat till nycklar senare kan vi ringa dem genom att bara använda nyckelnamnet.

VBA Dictionary är väldigt tufft att komma in men vi kommer att göra vårt bästa för att göra det lätt för dig att förstå. Vi kan jämföra både ordlista och samling på samma skala men vissa av VBA-ordböckerna erbjuder några av de funktioner som inte är tillgängliga med VBA Collections-objektet.

Arbetar med VBA-ordböcker

För att kunna arbeta med VBA Dictionaries måste vi först ställa in objektreferensen till 'Microsoft Scripting Runtime'.

För att ställa in referensen ska du följa stegen nedan.

Steg 1: Gå till Verktyg> Referenser.

Steg 2: Rulla ner och välj alternativet 'Microsoft Scripting Runtime' och klicka sedan på ok.

Nu kan vi komma åt VBA Dictionary med Scripting Library.

Du kan ladda ner denna Excel-mall för VBA-ordlista här - Excel-mall för VBA-ordlista

Skapa instans av ordbok med VBA-kod

Efter att ha ställt in referensen till 'Microsoft Scripting Runtime' måste vi skapa en instans av VBA Dictionary. Först förklara variabeln som Scripting.Dictionary

Koda:

 Sub Dict_Example1 () Dim Dict As Scripting.Diction End Sub

Nu är variabeln "Dict" en objektvariabel. För objektvariabel måste vi ställa in objektreferensen genom att använda ordet "Ny".

Set Dict = New Scripting.Dictionary

Nu kan vi komma åt alla egenskaper och metoder i ordboken.

Obs! Alla ord med gröna knappar är metoder och andra är egenskaper.

Förklara nu en variabel som DictResult.

Dim DictResult As Variant

Nu använder vi variabeln "Dict" och vi skapar en ny nyckel.

Nyckeln är vad ordet vi lägger till är. Låt oss lägga till mobiltelefonnamn som “Redmi”.

Objekt är inget annat än definitionen av ordet ( nyckel ) vi har lagt till. Denna definition av telefonen är dess pris så jag lägger till priset till 15000.

Nu för en annan variabel "DictResult" lägger vi till nyckelord med hjälp av "Dict" -variabeln.

Nyckel är det ord vi har skapat i föregående steg, dvs namnet på telefonen.

Nu har variabeln "DictResult" objektet på nyckeln vi har lagt till. Visa nu resultatet av variabeln i meddelandefältet VBA.

Koda:

 Sub Dict_Example1 () Dim Dict as Scripting.Diction Set Dict = New Scripting.Diction Dim DictResult As Variant Dict.Add Key: = "Redmi", Item: = 15000 DictResult = Dict ("Redmi") MsgBox DictResult End Sub 

Kör nu koden manuellt eller med F5-tangenten och en meddelandefält visar priset ( artikeln ) på telefonen ( nyckel ) som vi har lagt till med "Dict".

Förstå KEY & ITEM

Om du inte har förstått KEY & ITEM, låt mig förklara för dig med ett enkelt exempel. Föreställ dig den verkliga ordboken, med den här ordboken har vi ord (tangenter) och betydelsen av dessa ord (objekt). På samma sätt är ord nycklar och definition eller mening är artikeln.

Titta nu på ytterligare ett exempel på en ordbok. Antag att du söker efter ett telefonnummer till en viss person. Hur söker du?

Uppenbarligen, genom att använda det namn vi har använt när vi sparar telefonnumret. Här har vi två saker, en är namnet på personen och den andra är telefonnummer.

Namnet på personen är nyckeln.

Den Telefonnummer är objekt.

Om du vill ha ett exempel på Excel kan vi ge VLOOKUP som ett exempel. Vi använder formeln för att leta efter värden baserade på LOOKUP VALUE (Key). Resultatet som returneras av VLOOKUP-funktionen heter Item.

Kontrollera om mobiltelefonen är där eller inte

Tänk dig att du ger ett användarformulär till dina kunder för att kontrollera mobiltelefonens pris med en enkel inmatningsruta. Nedanför Excel VBA-kod visas en inmatningsruta framför användaren och de måste ange det telefonnummer som de letar efter. Om varumärket finns där i ordboken kommer det att visa priset på respektive telefon eller annars visa meddelandet som "Telefon du letar efter finns inte i biblioteket".

Koda:

 Sub Dict_Example2 () Dim PhoneDict As Scripting.Diction Dim DictResult As Variant Set PhoneDict = New Scripting.Dictionary PhoneDict.Add Key: = "Redmi", Item: = 15000 PhoneDict.Add Key: = "Samsung", Item: = 25000 PhoneDict .Add Key: = "Oppo", Item: = 20000 PhoneDict.Add Key: = "VIVO", Item: = 21000 PhoneDict.Add Key: = "Jio", Item: = 2500 DictResult = Application.InputBox (Prompt: = "Ange telefonnamnet") Om PhoneDict.Exists (DictResult) Då är MsgBox "Priset på telefonen" & DictResult & ":" & PhoneDict (DictResult) Annars MsgBox "Telefon du letar efter finns inte i Bibliotek "Avsluta om avsluta sub 

Kör den här koden med F5-tangenten eller manuellt och se resultatet.