Innholdsfortegnelse
I dag fortsetter vi å utforske tilpassede Excel-funksjoner. Ettersom du allerede vet hvordan du lager UDF-er (og jeg håper du også har prøvd å bruke dem i Excel), la oss grave litt dypere og lære hvordan du bruker og lagrer brukerdefinerte funksjoner i Excel.
Vi viser deg dessuten hvordan du enkelt kan lagre funksjonene dine i en Excel-tilleggsfil for å bruke dem senere med noen få klikk.
Så, her er det vi skal snakke om:
Ulike måter å bruke UDF på i Excel
Bruke UDF-er i regneark
Når du har bekreftet at UDF-ene fungerer som de skal, kan du bruke dem i Excel formler eller i VBA-kode.
Du kan bruke egendefinerte funksjoner i en Excel-arbeidsbok på samme måte som du bruker vanlige funksjoner. For eksempel, bare skriv formelen nedenfor i en celle:
= GetMaxBetween(A1:A6,10,50)
UDF kan brukes i kombinasjon med vanlige funksjoner. Legg for eksempel til tekst til den beregnede maksimalverdien:
= CONCATENATE("Maximum value between 10 and 50 is ", GetMaxBetween(A1: A6,10,50))
Du kan se resultatet i skjermbildet nedenfor:
Du kan finne tallet som både er maksimum og er i området fra 10 til 50.
La oss sjekke en annen formel:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the
Den egendefinerte funksjonen GetMaxBetween sjekker området B2:B9 og finner det maksimale antallet mellom 10 og 50. Deretter, ved å bruke INDEX + MATCH, får vi produktnavnet som samsvarer med denne maksimalverdien:
Som du kan se, er bruken av egendefinerte funksjoner ikke så forskjellig fra vanlig Excelfunksjoner.
Når du gjør dette, husk at en brukerdefinert funksjon bare kan returnere en verdi, men ikke utføre andre handlinger. Les mer om begrensningene for brukerdefinerte funksjoner.
Bruk av UDF i VBA-prosedyrer og funksjoner
UDF-er kan også brukes i VBA-makroer. Nedenfor kan du se makrokoden som ser etter maksimumsverdien i området fra 10 til 50 i kolonnen som inneholder den aktive cellen.
Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range( Cells(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Cells(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.Cells,)1 iCells, 1 Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End SubMakrokoden inneholder den tilpassede funksjonen
GetMaxBetween(.Cells, 10, 50)
It finner maksimumsverdien i den aktive kolonnen. Denne verdien vil da bli uthevet. Du kan se resultatet av makroen i skjermbildet nedenfor.
En egendefinert funksjon kan også brukes i en annen egendefinert funksjon. Tidligere i bloggen vår har vi sett på problemet med å konvertere et tall til tekst ved å bruke den egendefinerte funksjonen kalt Stavenummer .
Med dens hjelp kan vi få maksimal verdi fra området og umiddelbart skriv det ned som tekst.
For å gjøre dette vil vi lage en ny egendefinert funksjon der vi skal bruke funksjonene GetMaxBetween og SpellNumber som allerede er kjent for oss.
Funksjon SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxNumCells, MaxN) End FunksjonSom du kan se, er GetMaxBetween -funksjonen et argument til en annen egendefinert funksjon, SpellNumber . Den definerer maksimumsverdien, slik vi har gjort mange ganger før. Dette tallet konverteres så til tekst.
I skjermbildet ovenfor kan du se hvordan funksjonen SpellGetMaxBetween finner det maksimale antallet mellom 100 og 500 og konverterer den til tekst.
Å ringe UDF fra andre arbeidsbøker
Hvis du har opprettet UDF i arbeidsboken, betyr dette dessverre ikke at du ikke vil møte noen problemer i det hele tatt.
Etter min erfaring lager de fleste brukere før eller siden sin personlige samling av makroer og tilpassede funksjoner for å automatisere individuelle prosesser og beregninger. Og her oppstår problemet - koden til brukerdefinerte funksjoner i Visual Basic må lagres et sted for å kunne brukes senere i arbeidet.
For å bruke den tilpassede funksjonen, må arbeidsboken der du lagret den være åpen. i Excel. Hvis det ikke er det, får du #NAVN! feil når du prøver å bruke den. Denne feilen indikerer at Excel ikke kjenner navnet på funksjonen du vil bruke i formelen.
La oss ta en titt på måtene isom du kan bruke de egendefinerte funksjonene du oppretter.
Metode 1. Legg til arbeidsboknavnet til funksjonen
Du kan spesifisere navnet på arbeidsboken den er plassert i før navnet på funksjon. For eksempel, hvis du lagret en egendefinert funksjon GetMaxBetween() i en arbeidsbok kalt My_Functions.xlsm , må du angi følgende formel:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
Metode 2. Lagre alle UDF-ene i én felles fil
Lagre alle egendefinerte funksjoner i én spesiell arbeidsbok (for eksempel My_Functions.xlsm ) og kopier ønsket funksjon fra den til gjeldende arbeidsbok, om nødvendig.
Hver gang du oppretter en ny tilpasset funksjon, må du duplisere koden i arbeidsboken du skal bruke den i. Med denne metoden kan det oppstå flere ulemper:
- Hvis det er mange arbeidsfiler, og funksjonen er nødvendig overalt, må koden kopieres inn i hver bok.
- Husk å lagre arbeidsboken i et makroaktivert format (.xlsm eller .xlsb).
- Ved åpning av en slik fil vil beskyttelse mot makroer vise en advarsel hver gang, som må bekreftes. Mange brukere blir redde når de ser en gul linjeadvarsel som ber dem om å aktivere makroer. For å unngå å se denne meldingen, må du deaktivere Excel-beskyttelsen helt. Men dette er kanskje ikke alltid riktig og trygt.
Jeg tror du vil være enig med meg i at hele tiden åpner enfil og kopiere koden til brukerdefinerte funksjoner fra den eller skrive navnet på denne filen i en formel er ikke den beste løsningen. dermed kom vi til den tredje veien.
Metode 3. Lag en Excel-tilleggsfil
Jeg tror den beste måten er å lagre ofte brukte egendefinerte funksjoner i en Excel-tilleggsfil . Fordeler med å bruke tillegget:
- Du må bare koble tillegget til Excel én gang. Etter det kan du bruke prosedyrene og funksjonene i hvilken som helst fil på denne datamaskinen. Du trenger ikke å lagre arbeidsbøkene dine i .xlsm- og .xlsb-formater siden kildekoden ikke vil bli lagret i dem, men i tilleggsfilen.
- Du vil ikke lenger bli plaget av makrobeskyttelse ettersom tillegg refererer alltid til pålitelige kilder.
- Et tillegg er en egen fil. Det er enkelt å overføre det fra datamaskin til datamaskin, for å dele det med kolleger.
Vi snakker mer om å opprette og bruke et tillegg senere.
Bruke tillegg- ins for å lagre egendefinerte funksjoner
Hvordan lager jeg mitt eget tillegg? La oss gå gjennom denne prosessen trinn for trinn.
Trinn 1. Opprett tilleggsfilen
Åpne Microsoft Excel, lag en ny arbeidsbok og lagre den under et passende navn (f.eks. My_Functions) i tilleggsformat. For å gjøre dette, bruk menyen Fil - Lagre som eller F12-tasten. Sørg for å spesifisere filtypen Excel-tillegg :
Tillegget ditt vil ha filtypen .xlam.
Tips. Vær oppmerksom på atsom standard lagrer Excel tillegg i mappen C:\Users\[Ditt_navn]\AppData\Roaming\Microsoft\AddIns . Jeg anbefaler at du godtar standardplasseringen. Hvis du vil, kan du spesifisere en hvilken som helst annen mappe. Men når du kobler til tillegget, må du finne og spesifisere den nye plasseringen manuelt. Hvis du lagrer den i standardmappen, trenger du ikke lete etter tillegget på datamaskinen. Excel vil automatisk liste den opp.
Trinn 2. Koble til tilleggsfilen
Nå må tillegget vi har laget kobles til Excel. Da vil den lastes automatisk når programmet starter. For å gjøre dette, bruk menyen Fil - Alternativer - Tillegg . Sørg for at Excel-tillegg er valgt i feltet Administrer . Klikk på Go -knappen nederst i vinduet. I vinduet som vises, merker du tillegget My_Functions. Hvis du ikke ser den i listen, klikker du på Bla gjennom -knappen og bla til plasseringen av tilleggsfilen.
Hvis du bruker et tillegg for å lagre tilpassede funksjoner, er det én enkel regel å følge. Hvis du overfører arbeidsboken til andre personer, sørg for å også overføre en kopi av tillegget som inneholder funksjonaliteten du ønsker. De bør koble den på samme måte som du gjorde nå.
Trinn 3. Legg til egendefinerte funksjoner og makroer i tillegget
Vårt tillegg er koblet til Excel, men det gjør det har ingen funksjonalitetennå. For å legge til nye UDFer til den, åpne Visual Basic Editor ved å trykke Alt + F11. Deretter kan du legge til nye moduler med VBA-kode som beskrevet i Opprett UDF-opplæringen.
Velg tilleggsfilen din ( My_Finctions.xlam ) i VBAProject-vinduet. Bruk menyen Insert - Module for å legge til en egendefinert modul. Du må skrive tilpassede funksjoner inn i den.
Du kan enten skrive inn koden til en brukerdefinert funksjon manuelt eller kopiere den fra et sted.
Det er alt. Nå har du laget ditt eget tillegg, lagt det til Excel og du kan bruke UDF i det. Hvis du vil bruke flere UDF-er, er det bare å skrive koden i tilleggsmodulen i VBA-editoren og lagre den.
Det var det for i dag. Vi har lært hvordan du bruker brukerdefinerte funksjoner i arbeidsboken din. Vi håper virkelig at du finner disse retningslinjene nyttige. Hvis du har spørsmål, skriv i kommentarfeltet til denne artikkelen.