Nimede sõelumine VBA viisil

Kas teile on kunagi antud Exceli tööleht nimedega, kus täisnimed on kõik ühes lahtris? Teie ülesandeks on jagada nimed eesnimeks ja perekonnanimeks – seda protsessi nimetatakse sõelumiseks. Võite proovida kasutada abistamiseks valemit ja/või funktsiooni või kasutada Visual Basic for Applications (VBA) koodi.

Levinud lähenemisviis on leida tühik eesnime ja perekonnanime vahel ning voila! – tead, kus eesnimi lõpeb ja perekonnanimi algab.

Välja arvatud juhul, kui teil on keerulisema struktuuriga nimed, näiteks Dr William Healer või Zak H. Sneezer III.

Siin on tüüpiline VBA rutiin, mis vaatab iga nime tähemärgi haaval läbi, kuni leiab tühiku. Seejärel asetab see ühte veergu kõik, mis jääb tühikust vasakule, ja mis tahes, mis asub pärast veerus asuvast tühikust paremal.

Tehke kuni ActiveCell = "
thename = ActiveCell.Value
Vaatamiseks = 1 Lenile (nimi)
 Kui Mid(nimi, välimus, 1) = " " Siis
    ActiveCell.Offset(0, 1) = Vasak(nimi, otsimine - 1)
    ActiveCell.Offset(0, 2) = Mid(nimi, välimus + 1)
    Välju
 Lõpeta Kui
Edasi
ActiveCell.Offset(1, 0).Aktiveeri
Loop

See rutiin on abiks vaid ühe tühikuga nimede sõelumisel, näiteks Harvey Wallbanger või Tom Collins. Järgmine tabel näitab koodi käivitamise tulemust nimedele, millel on rohkem kui üks tühik:

Dr William ravitseja Dr. William ravitseja
Zak H. Aevastaja III Zak H. Aevastaja III

See ei ole hea sõelumiskatse. Harvey Wallbangeri ja Tom Collinsi parsimisel õnnestus see hästi, kuid teiste nimede puhul mitte nii hästi.

Siin on rohkem arenenud tehnika, mis annab paremaid tulemusi. Pidage meeles, et nimede sõelumine ei ole täiuslik, kuid see toimib paremini.

Tehnika seisneb selles, et loendatakse, mitu tühikut täisnimes on, ja seejärel lahutatakse nimi ühes tühikutest. Eelkõige, kui tühikuid on kolm või enam, kasutage eraldusruumina paremalt kahe sissepoole jäävat tühikut; muul juhul kasutage murderuumina parempoolseimat tühikut.

Seda protsessi käivitatakse VBA alamprogrammis, mis kutsub funktsiooni nimede silmuses. Tühikute arv määratakse põhitsükli alguses ja funktsioon tagastab asukoha, kus on murderuum.

Alam parse_names()
  Dim thename As String
  Hämarad tühikud täisarvuna
  Tehke kuni ActiveCell = "
    thename = ActiveCell.Value
    tühikud = 0
    Testi jaoks = 1 kuni Len (nimi)
      Kui Mid(nimi, test, 1) = " " Siis
      tühikud = tühikud + 1
    Lõpeta Kui
  Edasi
  Kui tühikud >= 3 Siis
    break_space_position = space_position(" ", nimi, tühikud - 1)
  Muidu
    break_space_position = space_position(" ", nimi, tühikud)
  Lõpeta Kui
  Kui tühikud > 0 Siis
    ActiveCell.Offset(0, 1) = Vasak(nimi, break_space_position - 1)
    ActiveCell.Offset(0, 2) = Mid(nimi, break_space_position + 1)
  Muidu
    See on mõeldud juhul, kui täisnimi on ainult üks nimi ilma tühikuteta
    ActiveCell.Offset(0, 1) = nimi
  Lõpeta Kui
  ActiveCell.Offset(1, 0).Aktiveeri
  Loop
Lõpeta alam
Funktsioon space_position(mida_otsida stringina, mida_vaadata stringina, tühiku arv täisarvuna) täisarvuna
  Dim loop_counter täisarvuna
    ruumi_positsioon = 0
    Silmuse_loendur = 1 kuni tühikute_loendus
      space_position = InStr(silmuse_loendur + tühiku_positsioon, mida_vaadata, mida_otsida)
      Kui tühiku_positsioon = 0, siis Exit For
    Edasi
Lõpetamisfunktsioon

Järgmine tabel näitab, kuidas tulemus praegu välja näeb:

Dr William ravitseja Dr William Tervendaja
Zak H. Aevastaja III Zak H. Aevastaja III

Nime parsimine on samavõrd kunst kui tehniline protsess. Selles teises näites on kõik ees- ja perekonnanimed õigetes veergudes. Kui kasutusele võetakse uus viie või enama tühikuga pikk nimi, võib rutiin parsimisel valesti minna ja VBA-kood vajaks rohkem tingimuslikku testimist. Kuid see näide on nüüd tööstusliku tugevusega nimeparsimise rutiinina õigel teel.

Leave a Comment

10 näpunäidet paremateks Microsoft Teamsi koosolekuteks

10 näpunäidet paremateks Microsoft Teamsi koosolekuteks

Uurige kümmet nõuannet Microsoft Teamsiga parema koosolekukogemuse saamiseks, sealhulgas märkmete tegemine, tausta hägustamine, vaigistamine ja koosolekute salvestamine.

Kuidas Word 2013 dokumentides kommentaare üle vaadata ja kustutada

Kuidas Word 2013 dokumentides kommentaare üle vaadata ja kustutada

Lühikeses Word 2013 dokumendis saate kommentaare hõlpsalt sirvida ja uurida. Siit leiate samm-sammult, kuidas kommentaare lugeda ja eemaldada.

Kuidas parandada Word 2016 tavalist malli

Kuidas parandada Word 2016 tavalist malli

Mõnikord varitseb kurjus selles, mis peaks olema Word 2016 peamises mõistlikkuse hoidlas: tavalises mallifailis. Õpi, kuidas taastada normaalne mall ja eemaldada probleemid.

Kuidas lisada lõigu taane Word 2013-s

Kuidas lisada lõigu taane Word 2013-s

Kuidas lisada lõigu taane Word 2013-s, et luua selgem ja professionaalsem ilme. Meie juhend aitab sul lihtsasti navigeerida Wordi funktsioonide kaudu ja tutvustab esimeses reas taande ning rippuva taande lisamise viise.

Kuidas Outlook 2016-s uusi kiireid samme luua

Kuidas Outlook 2016-s uusi kiireid samme luua

Lisaks kuuele kiirtoimingule, mis kuvatakse Outlooki esmakordsel installimisel, on teil valida veelgi rohkemate Quick Step mallide hulgast.

Kustutage oma PowerPointi slaididelt pliiatsi ja esiletõstja joonised

Kustutage oma PowerPointi slaididelt pliiatsi ja esiletõstja joonised

Kui olete esitluse ajal PowerPointi slaididele joonistamiseks kasutanud pliiatsit või markerit, saate joonised järgmise esitluse jaoks salvestada või need kustutada, nii et järgmisel näitamisel alustate puhaste PowerPointi slaididega. Pliiatsi ja markeri jooniste kustutamiseks järgige neid juhiseid: joonte kustutamine […]

Stiili teegi sisu rakenduses SharePoint 2010

Stiili teegi sisu rakenduses SharePoint 2010

Style'i teek sisaldab CSS-faile, XSL-faile ja eelmääratletud mallilehtede, lehepaigutuste ja juhtelementide poolt kasutatavaid pilte rakenduses SharePoint 2010. CSS-failide leidmiseks avaldamissaidi stiiliteegist: valige saidi toimingud → vaade. Kogu saidi sisu. Ilmub saidi sisu. Style raamatukogu asub […]

Vormindage numbreid tuhandetes ja miljonites Exceli aruannetes

Vormindage numbreid tuhandetes ja miljonites Exceli aruannetes

Ärge uputage oma publikut tohutute numbritega. Microsoft Excelis saate parandada oma armatuurlaudade ja aruannete loetavust, vormindades numbrid tuhandetes või miljonites.

Kuidas SharePointi saite jagada ja jälgida

Kuidas SharePointi saite jagada ja jälgida

Siit saate teada, kuidas kasutada SharePointi suhtlusvõrgustiku tööriistu, mis võimaldavad üksikisikutel ja rühmadel suhelda, koostööd teha, jagada ja ühendada.

Kuidas teisendada kuupäevi Excelis Juliani vormingutesse

Kuidas teisendada kuupäevi Excelis Juliani vormingutesse

Julia kuupäevi kasutatakse tootmiskeskkondades sageli ajatemplina ja partiinumbri kiirviitena. Seda tüüpi kuupäevade kodeerimine võimaldab jaemüüjatel, tarbijatel ja teenindusagentidel tuvastada toote valmistamise aja ja seega toote vanuse. Juliuse kuupäevi kasutatakse ka programmeerimises, sõjaväes ja astronoomias. Erinevad […]