Nosaukumu parsēšana VBA veidā

Vai jums kādreiz ir dota Excel darblapa ar nosaukumiem, kurā visi vārdi ir vienā šūnā? Jūsu uzdevums ir sadalīt vārdus vārdā un uzvārdos — šis process ir pazīstams kā parsēšana. Varat mēģināt izmantot formulu un/vai funkciju, lai palīdzētu, vai arī izmantot Visual Basic for Applications (VBA) kodu.

Izplatīta pieeja ir atrast atstarpi starp vārdu un uzvārdu, un voila! – jūs zināt, kur beidzas vārds un sākas uzvārds.

Ja vien jums nav vārdu, kuru struktūra ir sarežģītāka, piemēram, Dr. Viljams Dziednieks vai Zaks H. Šķaudītājs III.

Šeit ir tipiska VBA rutīna, kas izskata katru vārdu pēc rakstzīmes, līdz atrod atstarpi. Pēc tam tas ievieto visu, kas atrodas pa kreisi no atstarpes vienā kolonnā, un to, kas atrodas pa labi no atstarpes kolonnā pēc tam.

Dariet līdz ActiveCell = "
thename = ActiveCell.Value
Meklēšanai = 1 līdz Lenam (nosaukums)
 Ja Mid(nosaukums, izskats, 1) = " " Tad
    ActiveCell.Offset(0, 1) = pa kreisi (nosaukums, izskats - 1)
    ActiveCell.Offset(0, 2) = vidējais(nosaukums, izskats + 1)
    Iziet uz
 Beigas Ja
Nākamais
ActiveCell.Offset(1, 0).Aktivizēt
Cilpa

Šī rutīna ir noderīga, parsējot nosaukumus tikai ar vienu atstarpi, piemēram, Hārvijs Volbengers vai Toms Kolinss. Šajā tabulā ir parādīts koda palaišanas rezultāts nosaukumos, kuros ir vairāk nekā viena atstarpe:

Dr Viljams dziednieks Dr. Viljams dziednieks
Zaks H. Šķaudītājs III Zaks H. Šķaudītājs III

Šis nav labs parsēšanas mēģinājums. Tas izdevās lieliski, analizējot Hārviju Volbengeru un Tomu Kolinsa, bet ne tik labi citiem vārdiem.

Šeit ir izstrādāta tehnika, kas nodrošina labākus rezultātus. Ņemiet vērā, ka nosaukumu parsēšana nav ideāla, taču šādi rīkojoties, tiek panākts labāks darbs.

Paņēmiens ir saskaitīt, cik atstarpju ir pilnajā nosaukumā, un pēc tam sadalīt nosaukumu vienā no atstarpēm. Jo īpaši, ja ir trīs vai vairāk atstarpes, izmantojiet atstarpi divas collas no labās puses kā atstarpi; pretējā gadījumā izmantojiet galējo labo atstarpi kā pārtraukuma atstarpi.

Šis process tiek palaists VBA apakšprogrammā, kas izsauc funkciju, vienlaikus pārlūkojot nosaukumus. Atstarpju skaits tiek noteikts galvenās cilpas sākumā, un funkcija atgriež pozīciju, kurā atrodas pārtraukuma atstarpe.

Apakšparsēšanas_nosaukumi()
  Dim thename As String
  Blāvas atstarpes kā vesels skaitlis
  Dariet līdz ActiveCell = "
    thename = ActiveCell.Value
    atstarpes = 0
    Pārbaudei = 1 līdz Len (nosaukums)
      Ja Mid(nosaukums, tests, 1) = " " Tad
      atstarpes = atstarpes + 1
    Beigas Ja
  Nākamais
  Ja atstarpes >= 3 Tad
    break_space_position = space_position(" ", nosaukums, atstarpes - 1)
  Citādi
    break_space_position = space_position(" ", nosaukums, atstarpes)
  Beigas Ja
  Ja atstarpes > 0 Tad
    ActiveCell.Offset(0, 1) = pa kreisi (nosaukums, pārtraukuma_atstarpes_pozīcija — 1)
    ActiveCell.Offset(0, 2) = vidējais(nosaukums, pārtraukuma_atstarpes_pozīcija + 1)
  Citādi
    Tas ir paredzēts, ja pilnais vārds ir tikai viens vārds bez atstarpēm
    ActiveCell.Offset(0, 1) = nosaukums
  Beigas Ja
  ActiveCell.Offset(1, 0).Aktivizēt
  Cilpa
Beigu apakš
Funkcija space_position(what_to_look_for As String, what_to_look_in As String, space_count As Integer) Kā vesels skaitlis
  Dim loop_counter kā vesels skaitlis
    telpa_pozīcija = 0
    For loop_counter = 1 Līdz atstarpes_skaitam
      space_position = InStr(cilpas_skaitītājs + atstarpes_pozīcija, kas_jāskatās, ko_meklēt)
      Ja atstarpes_pozīcija = 0, tad Exit For
    Nākamais
Beigu funkcija

Nākamajā tabulā parādīts, kā tagad izskatās rezultāts:

Dr Viljams dziednieks Dr Viljams Dziednieks
Zaks H. Šķaudītājs III Zaks H. Šķaudītājs III

Vārdu parsēšana ir tikpat māksla kā tehnisks process. Šajā otrajā piemērā visi vārdi un uzvārdi ir norādīti pareizajās kolonnās. Ja tiktu ieviests jauns garais nosaukums ar piecām vai vairāk atstarpēm, rutīnas parsēšana var būt nepareiza, un VBA kodam būs jāveic papildu nosacījuma pārbaude. Taču šis piemērs tagad ir uz pareizā ceļa kā rūpnieciski vērtīga nosaukumu parsēšanas rutīna.

Leave a Comment

Kā pārvietoties Word 2007 tabulā

Kā pārvietoties Word 2007 tabulā

Uzziniet, kā efektīvi pārvietoties Word 2007 tabulā, izmantojot īsinājumtaustiņus un peles darbības, lai optimizētu savu darba plūsmu.

10 Excel funkcijas, kas jums patiešām būtu jāzina

10 Excel funkcijas, kas jums patiešām būtu jāzina

Šajā sarakstā ir iekļautas desmit populārākās Excel funkcijas, kas attiecas uz plašu vajadzību klāstu. Uzziniet, kā izmantot <strong>Excel funkcijas</strong> efektīvāk!

Papildu analīzes slāņu pievienošana jūsu Excel diagrammām

Papildu analīzes slāņu pievienošana jūsu Excel diagrammām

Uzziniet, kā pievienot papildu analīzes slāņus jūsu Excel diagrammām, lai uzlabotu vizualizāciju un sniegtu precīzākus datus. Šis raksts apraksta visas nepieciešamās darbības.

Kā izveidot rindkopas atkāpi programmā Word 2013

Kā izveidot rindkopas atkāpi programmā Word 2013

Uzziniet, kā iestatīt <strong>rindkopas atkāpi</strong> programmā Word 2013, lai uzlabotu dokumenta noformējumu un lasāmību.

Kā ievietot slejas Word 2010 dokumentā

Kā ievietot slejas Word 2010 dokumentā

Uzziniet, kā pareizi ievietot slejas programmā Word 2010, lai uzlabotu jūsu dokumentu formātu un struktūru.

Šūnu datu aizsardzība programmā Excel 2007

Šūnu datu aizsardzība programmā Excel 2007

Apsveriet iespēju aizsargāt Excel 2007 darblapu, lai izvairītos no neplānotām izmaiņām. Uzziniet, kā aizsargāt un atbloķēt šūnas, lai nodrošinātu datu integritāti.

PMT funkcija programmā Excel 2013

PMT funkcija programmā Excel 2013

Programmas Excel 2013 PMT funkcija aprēķina periodisko mūža rentes maksājumu. Šī funkcija ir būtiska hipotekāro kredītu maksājumu plānošanai.

Kā lietot t-test datu analīzes rīku programmā Excel

Kā lietot t-test datu analīzes rīku programmā Excel

Mācieties, kā veikt t-testus Excel programmā, izmantojot datus un aprakstot trīs t-testu veidus, kas noderēs jūsu datu analīzes procesā.

Kā filtrēt datu sarakstu programmā Excel 2016

Kā filtrēt datu sarakstu programmā Excel 2016

Uzziniet, kā filtrēt datu sarakstu programmā Excel 2016, lai ērti paslēptu nevēlamus ierakstus un strādātu tikai ar nepieciešamajiem datiem.

Kā pievienot datu etiķetes diagrammai programmā Excel 2007

Kā pievienot datu etiķetes diagrammai programmā Excel 2007

Uzziniet, kā vienkārši pievienot datu etiķetes diagrammai programmā Excel 2007. Palīdziet noteikt vērtības, kas tiek rādītas katrā datu punktā, izmantojot dažādas izvietošanas un formatēšanas iespējas.