Парсинг именује ВБА начин

Да ли сте икада добили Екцел радни лист са именима, у коме су сва имена у једној ћелији? Ваш задатак је да разбијете имена на име, презиме - процес познат као рашчлањивање. Можете покушати да користите формулу и/или функцију као помоћ, или можете користити Висуал Басиц за апликације (ВБА) код.

Уобичајени приступ је проналажење размака између имена и презимена, и воила! – знате где се завршава име и где почиње презиме.

Осим ако немате имена која су сложенија по структури, као што су др Вилијам Хеалер или Зак Х. Снизер ИИИ.

Ево типичне ВБА рутине која прегледа свако име, знак по знак, док не пронађе размак. Затим ставља све што је лево од размака у једну колону и оно што је десно од простора у колони после.

Уради док АцтивеЦелл = "
тхенаме = АцтивеЦелл.Валуе
За тражење = 1 до Лен(име)
 Ако је Мид(тхенаме, лоокинг, 1) = " " Онда
    АцтивеЦелл.Оффсет(0, 1) = Лево (име, изгледа - 1)
    АцтивеЦелл.Оффсет(0, 2) = Средина (име, изгледа + 1)
    Изађи за
 Крај Ако
Следећи
АцтивеЦелл.Оффсет(1, 0).Активирај
Лооп

Ова рутина је корисна за рашчлањивање имена са само једним размаком, као што су Харвеи Валлбангер или Том Цоллинс. Следећа табела приказује резултат покретања кода на именима са више од једног размака:

др Виллиам Хеалер др. Виллиам Хеалер
Зак Х. Снеезер ИИИ Зак Х. Снеезер ИИИ

Ово није добар покушај рашчлањивања. Било је добро за рашчлањивање Харвија Волбанџера и Тома Колинса, али не тако добро за друга имена.

Ево развијеније технике која даје боље резултате. Имајте на уму да рашчлањивање имена није савршено, али овај начин ради боље.

Техника је да се изброји колико је размака у пуном називу, а затим раздвоји име на једном од размака. Конкретно, ако постоје три или више размака, користите размак два у десно као размак; у супротном, користите крајњи десни размак као размак.

Овај процес се покреће у ВБА потпрограму који позива функцију док се креће кроз имена. Број размака се одређује рано у главној петљи, а функција враћа позицију на којој се налази размак.

Суб парсе_намес()
  Затамните име Ас Стринг
  Дим спацес Ас Интегер
  Уради док АцтивеЦелл = "
    тхенаме = АцтивеЦелл.Валуе
    размаци = 0
    За тест = 1 То Лен(име)
      Ако је средина(име, тест, 1) = " " Онда
      размаци = размаци + 1
    Крај Ако
  Следећи
  Ако је размака >= 3 Онда
    бреак_спаце_поситион = спаце_поситион(" ", тхенаме, спацес - 1)
  Иначе
    бреак_спаце_поситион = спаце_поситион(" ", име, размаци)
  Крај Ако
  Ако су размаци > 0 Онда
    АцтивеЦелл.Оффсет(0, 1) = Лево(име, позиција_размака - 1)
    АцтивеЦелл.Оффсет(0, 2) = Мид(тхенаме, бреак_спаце_поситион + 1)
  Иначе
    ' ово је за случај када је пуно име само једно име без размака
    АцтивеЦелл.Оффсет(0, 1) = име
  Крај Ако
  АцтивеЦелл.Оффсет(1, 0).Активирај
  Лооп
Енд Суб
Функција спаце_поситион(вхат_то_лоок_фор Ас Стринг, вхат_то_лоок_ин Ас Стринг, спаце_цоунт Ас Интегер) Као цео број
  Дим лооп_цоунтер као цео број
    спаце_поситион = 0
    Фор лооп_цоунтер = 1 То спаце_цоунт
      спаце_поситион = ИнСтр(лооп_цоунтер + спаце_поситион, вхат_то_лоок_ин, вхат_то_траск)
      Ако је спаце_поситион = 0, онда Екит Фор
    Следећи
Енд Фунцтион

Следећа табела показује како сада изгледа резултат:

др Виллиам Хеалер др Вилијам Исцелитељ
Зак Х. Снеезер ИИИ Зак Х. Снеезер ИИИ

Рашчлањивање имена је исто толико уметност колико и технички процес. У овом другом примеру, сва имена и презимена су у тачним колонама. Ако се уведе ново дуго име са пет или више размака, рутина би могла погрешно анализирати и ВБА код би захтевао више условног тестирања. Али овај пример је сада на добром путу као рутина рашчлањивања имена индустријске снаге.


Обришите цртеже оловком и маркером на својим ПоверПоинт слајдовима

Обришите цртеже оловком и маркером на својим ПоверПоинт слајдовима

Ако сте користили оловку или маркер за цртање на ПоверПоинт слајдовима током презентације, можете да сачувате цртеже за следећу презентацију или да их избришете тако да ћете следећи пут када их покажете почети са чистим ПоверПоинт слајдовима. Пратите ова упутства да бисте избрисали цртеже оловком и маркером: Брисање линија један на […]

Садржај библиотеке стилова у СхареПоинт 2010

Садржај библиотеке стилова у СхареПоинт 2010

Библиотека стилова садржи ЦСС датотеке, датотеке Ектенсибле Стилесхеет Лангуаге (КССЛ) и слике које користе унапред дефинисане главне странице, изгледе страница и контроле у ​​СхареПоинт 2010. Да бисте лоцирали ЦСС датотеке у библиотеци стилова на локацији за објављивање: Изаберите Радње сајта→Прикажи Сав садржај сајта. Појављује се садржај сајта. Библиотека Стил налази се у […]

Форматирајте бројеве у хиљадама и милионима у Екцел извештајима

Форматирајте бројеве у хиљадама и милионима у Екцел извештајима

Немојте претрпати своју публику огромним бројевима. У Мицрософт Екцел-у можете побољшати читљивост својих контролних табли и извештаја тако што ћете форматирати своје бројеве тако да се појављују у хиљадама или милионима.

Како делити и пратити СхареПоинт локације

Како делити и пратити СхареПоинт локације

Научите како да користите СхареПоинт алатке за друштвено умрежавање које омогућавају појединцима и групама да комуницирају, сарађују, деле и повезују се.

Како претворити датуме у јулијанске формате у Екцелу

Како претворити датуме у јулијанске формате у Екцелу

Јулијански датуми се често користе у производним окружењима као временска ознака и брза референца за број серије. Ова врста кодирања датума омогућава продавцима, потрошачима и услужним агентима да идентификују када је производ направљен, а тиме и старост производа. Јулијански датуми се такође користе у програмирању, војсци и астрономији. Различит […]

Како да направите приступну веб апликацију

Како да направите приступну веб апликацију

Можете да креирате веб апликацију у програму Аццесс 2016. Дакле, шта је уопште веб апликација? Па, веб значи да је онлајн, а апликација је само скраћеница за „апликацију“. Прилагођена веб апликација је апликација базе података на мрежи којој се приступа из облака помоћу претраживача. Ви правите и одржавате веб апликацију у верзији за десктоп […]

Трака за брзо покретање у СхареПоинт 2010

Трака за брзо покретање у СхареПоинт 2010

Већина страница у систему СхареПоинт 2010 приказује листу веза за навигацију на траци за брзо покретање дуж леве стране странице. Трака за брзо покретање приказује везе ка садржају истакнутог сајта као што су листе, библиотеке, сајтови и странице за објављивање. Трака за брзо покретање укључује две веома важне везе: Линк за сав садржај сајта: […]

Шта значе поруке о грешци решавача у Екцел-у?

Шта значе поруке о грешци решавача у Екцел-у?

За једноставне проблеме, Солвер у Екцел-у обично брзо проналази оптималне вредности променљиве Решавача за функцију циља. Али, у неким случајевима, Солвер има проблема да пронађе вредности променљиве Солвера које оптимизују функцију циља. У овим случајевима, Солвер обично приказује поруку или поруку о грешци која описује или расправља о проблему који […]

Како уклонити израчуната поља и ставке из Екцел заокретне табеле

Како уклонити израчуната поља и ставке из Екцел заокретне табеле

Можете лако да уклоните израчуната поља и ставке из Екцел заокретне табеле. Да бисте уклонили израчунато поље, кликните на ћелију у изведеној табели. Затим кликните на команду Поља, ставке и скупови на картици Анализа и изаберите Израчунато поље из подменија који се појави. Када Екцел прикаже дијалог Уметање израчунатог поља, изаберите […]

Како означити у СхареПоинт-у

Како означити у СхареПоинт-у

Ознаке су кључне речи које додељујете садржају. Означавање страница за дељење са другима је обележавање на друштвеним мрежама, веома је популарно на вебу и лако је у СхареПоинт-у. Ако сте икада користили сајт као што је Делициоус, већ знате како функционише обележавање на друштвеним мрежама. Како све више људи додељује исте ознаке, ознаке постају начин на који […]