PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAAntal mellanslag, " " Chr§(32) ??Antal mellanslag, " " Chr§(32) ??
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2022-01-09 09:43
 
Hej, jag har en lista, en Kolumn, med namn, För- och Efternamn med ett mellanrum mellan namnen...

Men i vissa olyckliga fall finns det även ett mellanslag bakom efternamnet, som är placerat sist, typ LISA KARLSSON

Och när jag räknar igenom kolumnen med namnen skall jag få exakt lika många mellanrum som jag har celler med namn.

Men hur fanken räknar jag mellanrummen, the Space, Chr§(32), " " ??

Jag har kodraden > MellanSlag = InStr(WorkSheets(Flik).Cells(J, 1), " ") < men här får jag svaret 5 som är antalet tecken fram till och med " ". Om jag nu bara vill veta hur många mellanslagen är i cellen, då vill jag ha svaret 2, eftersom det sitter ett mellanslag även bakom KARLSSON...

Hur formulerar jag min kodrad då ?? Jag har gjort några tappra försök med Count men men


/fleXcel
Nytt inlägg
 2022-01-09 13:35
 
Det behövdes inte mer än en promenad i parken så kom svaret ;-)

For AntalM = 1 To Längd

Space = Mid(WorkSheets(Flik).Cells(J, 1), AntalM, 1)

If Space = " " Then Hål = Hål + 1

Next AntalM
Nytt inlägg
 2022-01-10 09:37
 
 Ändrad av Christian  på 2022-01-10 09:44:44

 Hej hej

Mjo det där med mellanslag är drygt. Det finns dock en funktion som hanterar dessa så att du eventuellt slipper hantera hål.

str = cells(j, 1)

str = trim(str)

 'trim tar bort blanksteg i början eller i slutet av en textsträng, dock ej i mitten. Fungerar likadant som excelfunktionen =rensa(), eller =trim() på engelska.

Sedan finns det även en funktion som heter split. Denna delar upp en text i flera delar baserat på en avgränsare, då mellanslag är default så behövs ingen avgränsare i ditt fall:

Dim vnt as variant

vnt = split(str)

Om du då har lena karlsson , Så kommer arrayen att se ut som nedan:

vnt(0), "lena"

vnt(1), "karlsson"

vnt(2), ""

Mvh

Christian

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAAntal mellanslag, " " Chr§(32) ??Antal mellanslag, " " Chr§(32) ??

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter