Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Nu skriver du ikke hvordan medlemmest fulde navn står - står det som Fornavn, Efternavn EventueltMellemnavn Fornavn Efternavn EventueltMellemnavn eller?
Hvis der er flere efternavne eller fornavne, hvordan skal så deles op?
Det vigtige er blot at stille en regel op om HVOR der skal deles - ved første mellemfum, ved et komma, ved hvad?
Kolonnen - Fuldt navn - ser således ud: FULDT_NAVN Peter Jensen Peter Hansen Peter Ulrik Jensen Peter Stavbak-Jensen
Disse ønskes opdelt i 2 kolonner (celler) henholdsvis Fornavn(e) og Efternavn d.v.s
FORNAVN EFTERNAVN Peter Jensen Peter Hansen Peter Ulrik Jensen Peter Stavbak-Jensen
Håber det kan klargøre udfordringen - metoden må være noget i retning af følgende:
Indlæs fuldt navn i string - find første mellemrum ved start af søgning fra højre mod ventre - put denne substring i feltet EFTERNAVN og resten i feltet FORNAVN, eller... ?
Marker de celler der skal splittes og kør denne makro Der skriver fornavn og efternavn i cellerne til højre for.
Sub NameSplit() Dim c As Range For Each c In Selection c(1, 2) = Mid(c, 1, InStrRev(c, " ") - 1) c(1, 3) = Mid(c, InStrRev(c, " ") + 1, 999) Next End Sub
Yep - dit princip er helt rigtigt, og der er en funktion der kan netop det, at søge efter første forekomst af et specielt tegn i en string - nemlig InStrRev (læs om den i hjælpen)
Ellers kunen du kode den selv med en likke løkke, der læser et tegn ad gangen (med Mid()) fra ende til start, og stopper hvor det første mellemrum nås.
Var der komma mellem fornavn og efternavn, kunne du bruge split()-funktionen, og have komma som splittegn.
c(1, 3) = RTrim(Mid(c, InStrRev(c, " ") + 1, 999)) være bedre end c(1, 3) = Mid(c, InStrRev(c, " ") + 1, 999)?
Jeg mener, vil efternavnet altid fylde 999 tegn i ovenstående, eller finder VBA selv ud af at trimme de sidste mellemrum bort? - altså - er Rtrim overføldig?
VBA er egentlig ligeglad med hvilket tal jeg sætter ind der. Den holder selv ved slutningen af strengen. Altså efternavnet kommer ikke til at fylde 999 tegn. Hvis der er mellemrum efter efternavnet kommer disse også med. Men din version ville nok være mere rigtig, og en rtrim er ikke nogen krævende opgave aF maskinen :-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.