Nimien jäsentäminen VBA-tavalla

Onko sinulle koskaan annettu Excel-laskentataulukkoa, jossa on nimet, joissa kaikki nimet ovat yhdessä solussa? Sinun tehtäväsi on jakaa nimet etunimeksi ja sukunimeksi - prosessi, joka tunnetaan jäsentämisenä. Voit kokeilla apuna kaavaa ja/tai funktiota tai Visual Basic for Applications (VBA) -koodia.

Yleinen lähestymistapa on löytää väli etunimen ja sukunimen väliltä, ​​ja voila! – tiedät mihin etunimi päättyy ja sukunimi alkaa.

Ellei sinulla ole rakenteeltaan monimutkaisempia nimiä, kuten Dr. William Healer tai Zak H. Sneezer III.

Tässä on tyypillinen VBA-rutiini, joka etsii jokaista nimeä merkki kerrallaan, kunnes se löytää välilyönnin. Sitten se sijoittaa sen, mikä on tilan vasemmalla puolella yhteen sarakkeeseen ja sen, mikä on sen jälkeen sarakkeen oikealle puolelle.

Tee ActiveCell asti = "
thename = ActiveCell.Value
Etsiminen = 1 Len(nimi)
 Jos Mid(nimi, näköinen, 1) = " " Sitten
    ActiveCell.Offset(0, 1) = Vasen(nimi, katse - 1)
    ActiveCell.Offset(0, 2) = Mid(nimi, ulkoasu + 1)
    Poistu For
 Loppu Jos
Seuraava
ActiveCell.Offset(1, 0).Aktivoi
Silmukka

Tämä rutiini on hyödyllinen jäsennettäessä nimiä vain yhdellä välilyönnillä, kuten Harvey Wallbanger tai Tom Collins. Seuraava taulukko näyttää tuloksen koodin suorittamisesta nimissä, joissa on useampi kuin yksi välilyönti:

Tri William Healer DR. William Healer
Zak H. Sneezer III Zak H. Sneezer III

Tämä ei ole hyvä jäsennysyritys. Se toimi hyvin Harvey Wallbangerin ja Tom Collinsin jäsentämiseen, mutta ei niin hyvin muille nimille.

Tässä on kehitetty tekniikka, joka palauttaa parempia tuloksia. Muista, että nimien jäsentäminen ei ole täydellistä, mutta tällä tavalla toimiminen toimii paremmin.

Tekniikka on laskea kuinka monta välilyöntiä on koko nimessä, ja sitten pilkkoa nimi yhdestä välilyönnistä. Erityisesti, jos välilyöntejä on kolme tai useampia, käytä katkaisuvälinä kahden tuuman väliä oikealta; muussa tapauksessa käytä oikeanpuoleista tilaa jakovälinä.

Tämä prosessi suoritetaan VBA-alirutiinissa, joka kutsuu funktiota samalla kun silmukkaa nimiä. Välilyöntien määrä määritetään varhaisessa pääsilmukassa ja funktio palauttaa paikan, jossa katkaisuväli on.

Alajäsennys_nimet()
  Himmeä nimi As String
  Himmeä välilyönnit Kokonaislukuna
  Tee ActiveCell asti = "
    thename = ActiveCell.Value
    välilyönnit = 0
    Testissä = 1 Len(nimi)
      Jos Mid(nimi, testi, 1) = " " Sitten
      välilyönnit = välilyönnit + 1
    Loppu Jos
  Seuraava
  Jos välilyönnit >= 3 Sitten
    break_space_position = space_position(" ", nimi, välilyönnit - 1)
  Muu
    break_space_position = space_position(" ", nimi, välilyönnit)
  Loppu Jos
  Jos välilyönnit > 0 Sitten
    ActiveCell.Offset(0, 1) = Vasen(nimi, break_space_position - 1)
    ActiveCell.Offset(0, 2) = Keski(nimi, break_space_position + 1)
  Muu
    Tämä on tarkoitettu silloin, kun koko nimi on vain yksi nimi ilman välilyöntejä
    ActiveCell.Offset(0, 1) = nimi
  Loppu Jos
  ActiveCell.Offset(1, 0).Aktivoi
  Silmukka
Lopeta ala
Funktio space_position(mitä_haetaan_merkkijonona, mitä_katsotaan_merkkijonona, space_count kokonaislukuna) Kokonaislukuna
  Dim loop_counter Kokonaislukuna
    space_position = 0
    For loop_counter = 1 To space_count
      space_position = InStr(silmukan_laskuri + tila_sijainti, mitä_katso, mitä_haetaan)
      Jos space_position = 0, sitten Exit For
    Seuraava
Lopeta toiminto

Seuraava taulukko näyttää, miltä tulos näyttää nyt:

Tri William Healer Tohtori William Parantaja
Zak H. Sneezer III Zak H. Aivastaja III

Nimen jäsentäminen on yhtä paljon taidetta kuin tekninen prosessi. Tässä toisessa esimerkissä kaikki etu- ja sukunimet ovat oikeissa sarakkeissa. Jos käyttöön otettaisiin uusi pitkä nimi, jossa on vähintään viisi välilyöntiä, rutiini saattaa saada jäsennyksen väärin, ja VBA-koodi vaatisi enemmän ehdollista testausta. Mutta tämä esimerkki on nyt oikealla tiellä teollisena nimen jäsennysrutiinina.


Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa Microsoft Word avaa tiedostot vain luku -tilassa, jolloin niiden muokkaaminen on mahdotonta? Älä huoli, menetelmät ovat alla

Microsoft Word -asiakirjojen virheellisen tulostuksen korjaaminen

Microsoft Word -asiakirjojen virheellisen tulostuksen korjaaminen

Virheiden korjaaminen virheellisten Microsoft Word -asiakirjojen tulostuksessa. Virheet tulostettaessa Word-asiakirjoja, joissa on muuttuneet fontit, sotkuiset kappaleet, puuttuva teksti tai kadonnut sisältö ovat melko yleisiä. Älä kuitenkaan

Pyyhi kynä- ja korostuspiirrokset PowerPoint-dioistasi

Pyyhi kynä- ja korostuspiirrokset PowerPoint-dioistasi

Jos olet piirtänyt PowerPoint-dioihin esityksen aikana kynää tai korostuskynää, voit tallentaa piirustukset seuraavaa esitystä varten tai poistaa ne, jotta seuraavan kerran näytät ne. Aloitat puhtailla PowerPoint-dioilla. Pyyhi kynä- ja korostuskynäpiirrokset noudattamalla näitä ohjeita: Pyyhi rivit yksi kerrallaan […]

Tyylikirjaston sisältö SharePoint 2010:ssä

Tyylikirjaston sisältö SharePoint 2010:ssä

Tyylikirjasto sisältää CSS-tiedostoja, Extensible Stylesheet Language (XSL) -tiedostoja ja kuvia, joita käyttävät ennalta määritetyt sivupohjat, sivuasettelut ja säätimet SharePoint 2010:ssä. CSS-tiedostojen etsiminen julkaisusivuston tyylikirjastosta: Valitse Sivuston toiminnot→ Näytä Kaikki sivuston sisältö. Sivuston sisältö tulee näkyviin. Style-kirjasto sijaitsee […]

Muotoile numerot tuhansiksi ja miljooniksi Excel-raporteissa

Muotoile numerot tuhansiksi ja miljooniksi Excel-raporteissa

Älä hukuta yleisöäsi jättimäisillä numeroilla. Microsoft Excelissä voit parantaa koontinäyttöjesi ja raporttiesi luettavuutta muotoilemalla numerot näyttämään tuhansia tai miljoonia.

SharePoint-sivustojen jakaminen ja seuraaminen

SharePoint-sivustojen jakaminen ja seuraaminen

Opi käyttämään SharePointin sosiaalisen verkostoitumisen työkaluja, joiden avulla yksilöt ja ryhmät voivat kommunikoida, tehdä yhteistyötä, jakaa ja pitää yhteyttä.

Kuinka muuntaa päivämäärät Julian-muotoihin Excelissä

Kuinka muuntaa päivämäärät Julian-muotoihin Excelissä

Juliaanisia päivämääriä käytetään usein valmistusympäristöissä aikaleimana ja pikaviitteenä eränumerolle. Tämän tyyppisen päivämääräkoodauksen avulla jälleenmyyjät, kuluttajat ja huoltoedustajat voivat tunnistaa tuotteen valmistusajankohdan ja siten tuotteen iän. Julian-päivämääriä käytetään myös ohjelmoinnissa, armeijassa ja tähtitiedessä. Erilainen […]

Access-verkkosovelluksen luominen

Access-verkkosovelluksen luominen

Voit luoda verkkosovelluksen Access 2016:ssa. Mikä verkkosovellus sitten on? No, verkko tarkoittaa, että se on verkossa, ja sovellus on vain lyhenne sanoista "sovellus". Mukautettu verkkosovellus on online-tietokantasovellus, jota käytetään pilvestä selaimen avulla. Rakennat ja ylläpidät verkkosovellusta työpöytäversiossa […]

Pikakäynnistyspalkki SharePoint 2010:ssä

Pikakäynnistyspalkki SharePoint 2010:ssä

Useimmat SharePoint 2010:n sivut näyttävät navigointilinkkien luettelon pikakäynnistyspalkissa sivun vasemmassa reunassa. Pikakäynnistyspalkki näyttää linkit esitellyn sivuston sisältöön, kuten luetteloihin, kirjastoihin, sivustoihin ja julkaisusivuihin. Pikakäynnistyspalkki sisältää kaksi erittäin tärkeää linkkiä: Koko sivuston sisältö -linkki: […]

Mitä Ratkaisijan virheilmoitukset Excelissä tarkoittavat?

Mitä Ratkaisijan virheilmoitukset Excelissä tarkoittavat?

Yksinkertaisille ongelmille Excelin Ratkaisija löytää yleensä nopeasti optimaaliset Ratkaisijamuuttujien arvot tavoitefunktiolle. Mutta joissakin tapauksissa Ratkaisijalla on vaikeuksia löytää Solver-muuttujan arvoja, jotka optimoivat tavoitefunktion. Näissä tapauksissa Ratkaisija näyttää yleensä viestin tai virheilmoituksen, joka kuvaa tai käsittelee ongelmaa, jonka […]