Parsning av namn på VBA Way

Har du någonsin fått ett Excel-kalkylblad med namn, där de fullständiga namnen finns i en cell? Din uppgift är att dela upp namnen i förnamn, efternamn - en process som kallas för parsning. Du kan prova att använda en formel och/eller en funktion som hjälp, eller så kan du använda Visual Basic for Applications (VBA)-kod.

Ett vanligt tillvägagångssätt är att hitta mellanrummet mellan förnamn och efternamn, och voila! – du vet var förnamnet slutar och efternamnet börjar.

Såvida du inte har namn som är mer komplexa i strukturen, som Dr. William Healer eller Zak H. Sneezer III.

Här är en typisk VBA-rutin som tittar igenom varje namn, tecken för tecken, tills det hittar ett mellanslag. Sedan placerar den det som är till vänster om utrymmet i en kolumn och det som är till höger om utrymmet i kolumnen efter.

Gör tills ActiveCell = "
thename = ActiveCell.Value
För att leta = 1 Till Len(namnet)
 If Mid(thename, looking, 1) = " " Då
    ActiveCell.Offset(0, 1) = Vänster(namnet, tittar - 1)
    ActiveCell.Offset(0, 2) = Mid(namnet, tittar + 1)
    Avsluta för
 Avsluta om
Nästa
ActiveCell.Offset(1, 0).Aktivera
Slinga

Denna rutin är användbar för att analysera namn med bara ett blanksteg, som Harvey Wallbanger eller Tom Collins. Följande tabell visar resultatet av att köra koden på namn med mer än ett mellanslag:

Dr William Healer Dr. William Healer
Zak H. Sneezer III Zak H. Nysare III

Detta är inte ett bra analysförsök. Det fungerade bra för att analysera Harvey Wallbanger och Tom Collins men inte så bra för de andra namnen.

Här är en mer utvecklad teknik som ger bättre resultat. Tänk på att det inte är perfekt att tolka namn, men att gå tillväga på det här sättet gör ett bättre jobb.

Tekniken är att räkna hur många blanksteg som finns i det fullständiga namnet och sedan bryta isär namnet på ett av mellanrummen. I synnerhet, om det finns tre eller fler utrymmen, använd utrymmet två in från höger som brytutrymme; annars, använd utrymmet längst till höger som brytutrymme.

Denna process körs i en VBA-subrutin som anropar en funktion samtidigt som man går igenom namnen. Antalet mellanslag bestäms tidigt i huvudslingan, och funktionen returnerar positionen där brytutrymmet är.

Sub parse_names()
  Dimma namnet som sträng
  Dimma mellanslag som heltal
  Gör tills ActiveCell = "
    thename = ActiveCell.Value
    mellanslag = 0
    För test = 1 Till Len(namnet)
      Om Mid(namn, test, 1) = " " Då
      mellanslag = mellanslag + 1
    Avsluta om
  Nästa
  Om mellanslag >= 3 Då
    break_space_position = space_position(" ", namnet, mellanslag - 1)
  Annan
    break_space_position = space_position(" ", namnet, mellanslag)
  Avsluta om
  Om mellanslag > 0 Då
    ActiveCell.Offset(0, 1) = Left(thename, break_space_position - 1)
    ActiveCell.Offset(0, 2) = Mid(namnet, break_space_position + 1)
  Annan
    ' det här är för när det fullständiga namnet bara är ett enda namn utan mellanslag
    ActiveCell.Offset(0, 1) = namnet
  Avsluta om
  ActiveCell.Offset(1, 0).Aktivera
  Slinga
Avsluta Sub
Funktion space_position(what_to_look_for As String, what_to_look_in As String, space_count Som Integer) Som heltal
  Dim loop_counter Som heltal
    space_position = 0
    För loop_counter = 1 Till space_count
      space_position = InStr(loop_counter + space_position, what_to_look_in, what_to_look_for)
      Om space_position = 0 Avsluta för
    Nästa
Avsluta funktion

Följande tabell visar hur resultatet ser ut nu:

Dr William Healer Dr William Botemedel
Zak H. Sneezer III Zak H. Nysare III

Namnanalys är lika mycket konst som teknisk process. I det här andra exemplet finns alla för- och efternamn i rätt kolumner. Om ett nytt långt namn med fem eller fler mellanslag introducerades, kan rutinen få feltolkningen och VBA-koden skulle behöva mer villkorlig testning i den. Men det här exemplet är nu på rätt väg som en rutin för att analysera namn på industriell styrka.

Leave a Comment

Hur man använder kommandona Gör om och upprepa i Word 2016

Hur man använder kommandona Gör om och upprepa i Word 2016

Lär dig att använda kommandona Gör om och Upprepa i Word 2016 för att effektivt hantera dina dokument. Dessa funktioner hjälper dig att enkelt ångra och återställa ändringar.

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows Microsoft Word öppnar filer i skrivskyddat läge, vilket gör det omöjligt att redigera dem? Oroa dig inte, metoderna finns nedan

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Så här åtgärdar du fel vid utskrift av felaktiga Microsoft Word-dokument Fel vid utskrift av Word-dokument med ändrade teckensnitt, röriga stycken, saknad text eller förlorat innehåll är ganska vanligt. Men gör det inte

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Om du har använt pennan eller överstrykningspennan för att rita på dina PowerPoint-bilder under en presentation, kan du spara ritningarna till nästa presentation eller radera dem så att nästa gång du visar den börjar du med rena PowerPoint-bilder. Följ dessa instruktioner för att radera ritningar med penna och överstrykningspenna: Radera linjer ett på […]

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteket innehåller CSS-filer, XSL-filer (Extensible Stylesheet Language) och bilder som används av fördefinierade mallsidor, sidlayouter och kontroller i SharePoint 2010. För att hitta CSS-filer i stilbiblioteket på en publiceringswebbplats: Välj Webbplatsåtgärder→Visa Allt webbplatsinnehåll. Innehållet på webbplatsen visas. Style-biblioteket ligger i […]

Formatera siffror i tusentals och miljoner i Excel-rapporter

Formatera siffror i tusentals och miljoner i Excel-rapporter

Överväldiga inte din publik med gigantiska siffror. I Microsoft Excel kan du förbättra läsbarheten för dina instrumentpaneler och rapporter genom att formatera dina siffror så att de visas i tusentals eller miljoner.

Hur man delar och följer SharePoint-webbplatser

Hur man delar och följer SharePoint-webbplatser

Lär dig hur du använder SharePoints sociala nätverksverktyg som låter individer och grupper kommunicera, samarbeta, dela och ansluta.

Hur man konverterar datum till Julian-format i Excel

Hur man konverterar datum till Julian-format i Excel

Julianska datum används ofta i tillverkningsmiljöer som en tidsstämpel och snabbreferens för ett batchnummer. Denna typ av datumkodning tillåter återförsäljare, konsumenter och serviceagenter att identifiera när en produkt tillverkades och därmed produktens ålder. Julianska datum används också i programmering, militären och astronomi. Annorlunda […]

Hur man skapar en Access Web App

Hur man skapar en Access Web App

Du kan skapa en webbapp i Access 2016. Så vad är en webbapp egentligen? Tja, webben betyder att den är online, och appen är bara en förkortning för "applikation". En anpassad webbapp är en onlinedatabasapplikation som nås från molnet med en webbläsare. Du bygger och underhåller webbappen i skrivbordsversionen […]

Snabbstartsfält i SharePoint 2010

Snabbstartsfält i SharePoint 2010

De flesta sidor i SharePoint 2010 visar en lista med navigeringslänkar i snabbstartsfältet till vänster på sidan. Snabbstartsfältet visar länkar till utvalt webbplatsinnehåll som listor, bibliotek, webbplatser och publiceringssidor. Snabbstartsfältet innehåller två mycket viktiga länkar: Länken Allt webbplatsinnehåll: […]