Selles artiklis õpime, kuidas luua Microsoft Excelis VBA abil kasutaja määratud funktsioone.
Kasutaja määratud funktsioon:- Microsoft Excelil on juba palju funktsioone, kuid siiski on kõigil erinevad nõuded, olukord, saame luua oma funktsiooni vastavalt nõudele, mida nimetatakse kasutaja määratud funktsiooniks. Saame kasutada kasutaja määratud funktsiooni nagu muud Exceli funktsioonid.
Allpool on teemad, mille jaoks loome kasutaja määratud funktsiooni:
1). Kuidas loendada sõnade arvu lahtris või vahemikus?
2). Kuidas Excelis lausest või lahtrist sõna välja võtta?
3). Kuidas luua ISO valem?
4). Kuidas teada saada töölehe ja töövihiku nime VBA abil?
5). Kuidas Exceli lahtrist esimest ja viimast sõna ekstraheerida?
Kuidas luua kasutaja määratletud funktsioon sõnade arvu loendamiseks lahtris või vahemikus?
Meil on andmed lehel 1, kus meil on mõned aadressid, nii et tahame loendada lahtris või vahemikus olevad sõnad, luues Excelis VBA kaudu kasutaja määratud funktsiooni.
Kasutaja määratud funktsiooni loomiseks järgige alltoodud samme:-
- Avage VBA leht ja vajutage klahve Alt+F11.
- Sisestage moodul.
Kirjutage allpool nimetatud kood:
Funktsioon WORDSCOUNT (rRange As Range) Nii pikk Dim rCell As Range Dim Loendus Iga rCellInrRange lCount = lCount + Len (Trim (rCell)) - Len (Asenda (Trim (rCell), "", "")) + 1 Järgmine rCell WORDSCOUNT = lCount End Function
Koodi selgitused: - Kasutaja määratletud funktsiooni loomiseks käivitame koodi funktsiooni nimeks ja määratleme muutujad. Vahemikus olevate sõnade loendamiseks kasutasime koodis sõna „Iga silmuse jaoks”.
Kuidas seda funktsiooni Excelis kasutada?
Selle funktsiooni kasutamiseks järgige alltoodud samme:-
- Minge Exceli lehele.
- Lahtri sõnade lugemiseks sisestage lahtrisse D7 valem.
- = WORDSCOUNT (C7), lahter C7 on lahter, milles me tahame sõnu arvutada.
- Funktsioon tagastab 6, mis tähendab, et lahter C7 sisaldab 6 sõna.
- Ülejäänud lahtrite jaoks sama arvutuse tegemiseks kopeerige sama valem ja kleepige vahemikku.
- Vahemikus olevate sõnade lugemiseks kasutage valemit = WORDSCOUNT (C7: C16) ja vajutage sisestusklahvi.
- Funktsioon tagastab sõnade arvu.
Märkus.- See UDF on kasulik vahemikus või ühes lahtris olevate sõnade lugemiseks.
Nüüd kirjutame sõna lugemiseks koodi, kasutades selleks eraldajat (,). Järgige allpool toodud samme:-
Funktsioon SEPARATECOUNTWORDS (rRange vahemikuna, valikuline eraldaja variandina) Sama pikk Dim rCell As Range Dim Loendage nii kaua, kui IsMissing (eraldaja) Seejärel eraldaja = "," Lõpp kui iga rCellInrRange lCount = lCount + Len (Trim (rCell)) - - Len (Asenda (Trim (rCell), eraldaja, "")) Järgmine rCell SEPARATECOUNTWORDS = lCount End Function
Selle funktsiooni kasutamiseks järgige alltoodud samme:-
- Minge Exceli lehele.
- Sõna konkreetsete eraldajate lugemiseks kasutame seda määratletud funktsiooni.
- = SEPARATECOUNTWORDS (C7) ja vajutage sisestusklahvi.
- Funktsioon tagastab konkreetsete eraldajate arvu.
Kuidas ekstraheerida sõna lausest või lahtrist Microsoft Excelis VBA abil?
Meil on andmed lehel 1. Millel meil on mõned aadressid, nii et tahame sõnu lausest või lahtrist või vahemikust välja võtta, luues Excelis VBA kaudu kasutaja määratud funktsiooni.
Kasutaja määratud funktsiooni loomiseks järgige alltoodud samme:-
- Avage VBA leht ja vajutage klahve Alt+F11.
- Sisestage moodul.
- Kirjutage allpool nimetatud kood:-
Funktsioon GETWORD (tekst variandina, N täisarvuna, valikuline eraldaja variandina) stringina, kui see on puudu (eraldaja), siis eraldaja = "" Lõpp, kui GETWORD = jagatud (tekst, eraldaja) (N - 1) lõppfunktsioon
Koodi selgitus:- Ülalmainitud koodis oleme maininud muutujatega funktsiooni nime. Ja siis olime määratlenud kriteeriumid sõna lausest või lahtrist väljavõtmiseks.
Nüüd õpime seda valemit kasutama. Järgige allpool toodud samme:-
- Minge Exceli lehele.
- Kasutage seda valemit lahtris D7.
- = GETWORD (C7,2) ja vajutage sisestusklahvi.
- Funktsioon tagastab lahtrist teise sõna, sest valemis, mida me 2 jaoks mainisimend numbri sõna. Kui soovite otsida sõna, mis on paigutatud 3 -lerd positsioon, peate valemis muutma numbri 2 -lt 3 -le.
Kuidas luua VBA abil Microsoft Excelis ISO nädala numbrivalem?
Õpime, kuidas selle UDF -iga Excelis ISO nädala numbri valemit luua. Selle funktsiooni abil tuvastame, et mainitud kuupäev kuulub aasta nädalanumbrile.
Meil on lehel kuupäevade loend ja teises veerus tahame nädala numbreid hankida.
Selle nõude jaoks UDF -i loomiseks järgige allpool toodud samme:-
- Avage VBA leht ja vajutage klahve Alt+F11.
- Sisestage moodul.
- Kirjutage allpool nimetatud kood:-
Funktsioon ISOWEEKNUMBER (kuupäeva märkimine) nii pikk Dim Dt kui kuupäev Dt = Kuupäevaseeria (Aasta (Näita - nädalapäev (Näita - 1) + 4), 1, 3) ISOWEEKNUMBER = Int ((Indate - Dt + nädalapäev (Dt) + 5 ) / 7) Lõppfunktsioon
Koodi selgitus:-:- Ülaltoodud koodis oleme maininud funktsiooni nime koos muutujatega. Ja siis olime määranud kuupäeva väärtuse ja seejärel funktsiooni „ISOWEENUMBER” kriteeriumid.
Kuidas me saame seda funktsiooni oma Exceli failis kasutada?
- Minge Exceli lehele.
- Sisestage valem lahtrisse D7.
- = ISOWEEKNUMBER (C7) ja vajutage sisestusklahvi.
- Funktsioon tagastab lahtrisse sisestatud kuupäeva nädala. Nüüd, kui soovite iga kuupäeva nädala numbri hankida, kopeerige vahemikku sama valem.
Nüüd õpime, kuidas tagastada ISO standardite aasta algus Excelis- aasta esimene esmaspäev.
See funktsioon kontrollib põhimõtteliselt, et 1st Aasta esmaspäev langeb millisele kuupäevale ja siis hakatakse arvutama nädalate arvu sellest kuupäevast alates. Vaatame, kuidas saame selle nõude jaoks UDF -i luua.
Järgige allpool toodud samme:-
- Avage VBA leht ja vajutage klahve Alt+F11.
- Sisestage moodul.
- Kirjutage allpool nimetatud kood:-
Funktsioon ISOSTYR (aasta täisarvuna) Kuupäev Dim WD täisarvuna Dim NY kuupäevana NY = DateSerial (aasta, 1, 1) WD = (NY - 2) Mod 7 Kui WD <4, siis ISOSTYR = NY - WD Muu ISOSTYR = NY - WD + 7 funktsiooni lõpp või lõpp
Koodi selgitus: - Ülaltoodud koodis oleme maininud muutujatega funktsiooni nime. Ja siis olime määranud muutujate kriteeriumid ja seejärel valemi sisendi.
Peate lihtsalt esitama 2001. aasta selles vormingus ja valem annab teile 1st Aasta esmaspäev.
Nüüd õpime, kuidas UDF -i Excelis kasutada. Järgige allpool toodud samme:-
- Minge Exceli lehele.
- Sisestage valem lahtrisse D7.
- = ISOSTYR (C7) ja vajutage sisestusklahvi.
- Funktsioon tagastab kuupäeva 1st Uusaasta esimese nädala esmaspäev.
- Kuupäeva tagastamiseks 1st Uue aasta esimese nädala esmaspäeval kopeerige sama valem ja kleepige vahemikku.
Kuidas teada saada töölehe ja töövihiku nime, kasutades Microsoft Excelis VBA -d?
Järgige allpool toodud koodi ja samme:-
- Avage VBA leht ja vajutage klahve Alt+F11.
- Sisestage moodul.
- Kirjutage allpool nimetatud kood:-
Funktsioon Töölehe nimi () Töölehe nimi = Vahemik ("A1"). Parent.Name End Function
Koodi selgitus:- Ülaltoodud koodis oleme maininud funktsiooni nime ja seejärel määratlenud, kuidas lehe nime teada saada.
Selle valemi kasutamiseks peate lihtsalt sisestama valemi igasse lahtrisse järgmiselt: -= Töölehe nimi (). Funktsioon tagastab lehe nime.
Töövihiku nime funktsiooni loomiseks järgige alltoodud samme ja koodi:-
- Avage VBA leht, vajutage klahve Alt+F11.
- Sisestage moodul.
- Kirjutage allpool nimetatud kood:-
Funktsioon Töövihiku nimi () Töövihiku nimi = ThisWorkbook.Name Lõppfunktsioon
Koodi selgitus:-:- Ülaltoodud koodis oleme maininud funktsiooni nime ja seejärel määratlenud, kuidas töövihiku nime tundma õppida.
Selle valemi kasutamiseks peate lihtsalt sisestama valemi igasse lahtrisse järgmiselt: - = Töövihiku nimi (). Funktsioon tagastab lehe nime.
Kuidas eraldada lahtrist esimene ja viimane sõna, kasutades Microsoft Excelis VBA -d?
Meil on andmed lehel 1, kus meil on mõned aadressid, nii et me tahame ekstraheerida viimase ja esimese sõna lausest või lahtrist või vahemikust, luues Excelis VBA kaudu kasutaja määratud funktsiooni.
Esiteks kirjutame esimese sõna ekstraheerimise funktsiooni. Palun järgige alltoodud samme:-
- Avage VBA leht, vajutage klahve Alt+F11.
- Sisestage moodul
Kirjutage allpool nimetatud kood:-
Funktsioon GETFW (tekst stringina, valikuline eraldaja variandina) Dim FW kui string Kui IsMissing (eraldaja) Siis Separator = "" End If FW = Left (Text, InStr (1, Text, Separator, vbTextCompare)) GETFW = Asenda (FW , Eraldaja, "") Lõppfunktsioon
Koodi selgitus: - Ülalmainitud koodis oleme maininud muutujatega funktsiooni nime. Ja siis oleme määratlenud kriteeriumid sõna lausest või lahtrist väljavõtmiseks.
Nüüd õpime seda valemit kasutama. Järgige allpool toodud samme:-
- Minge Exceli lehele.
- Kasutage seda valemit lahtris D9.
- = GETFW (C9) ja vajutage sisestusklahvi.
- Funktsioon tagastab andmetest esimese sõna. Kõigi lahtrite esimese sõna hankimiseks kopeerige vahemikku sama valem.
Nüüd kirjutame koodi, et ekstraheerida lahtrist viimane sõna. Järgige allpool mainitud koodi:-
- Avage VBA leht, vajutage klahve Alt+F11.
- Sisestage moodul.
- Kirjutage allpool nimetatud kood:-
Funktsioon GETLW (tekst stringina, valikuline eraldaja variandina) Dim LW kui string Kui IsMissing (eraldaja) Siis Separator = "" End If LW = StrReverse (Text) LW = Left (lastword, InStr (1, LW, Separator, vbTextCompare) ) GETLW = StrReverse (Asenda (LW, eraldaja, "")) Lõppfunktsioon
Nüüd õpime seda valemit kasutama. Järgige allpool toodud samme:-
- Minge Exceli lehele.
- Kasutage seda valemit lahtris D9.
- = GETLW (C9) Vajutage sisestusklahvi.
- Funktsioon tagastab andmetest viimase sõna. Nüüd kopeerige kõigi lahtrite viimase sõna leidmiseks vahemikus sama valem.
Need on funktsioonid, mida saame VBA kaudu määratleda ja seejärel kasutada seda Exceli valemina. Samuti saame luua palju rohkem kasutaja määratud funktsioone. Jätkake meiega õppimist, leiame keerukamaid valemeid.