25. august 2006 - 11:57Der er
12 kommentarer og 1 løsning
Fjerne bogtaver og tal fra kollonne
Jeg har 2 kolonner med tekst der fx ser sådan her ud:
Kolonne 1 Kolonne 2
NIELS ERIK JENSEN DK ESBJERG22
Jeg vil gerne have fjernet DK (dvs. de to tal 22) Jeg vil også gerne have at den laver alle bogstaver små bortset fra at hvert ord starter med et stort bogstav.
Dvs. at Kolonne 1 Række 1 skal indeholde:
Niels Erik Jensen
Kolonne 2 Række 1 skal indeholde
Esbjerg
Så vil det i regnearket set sådan her ud:
Niels Erik Jensen | Esbjerg
Er der en der ved om det kan lade sig gøre, og skrive hvordan?
Dim antalRæk Sub FjernTalMv() Dim by, redBy antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
For række = 1 To antalRæk Sheets(1).Cells(række, 4) = redigerKolonne(række, 1) by = redigerKolonne(række, 2) Sheets(1).Cells(række, 5) = fjernTal(by) Next række
MsgBox ("Redigering afsluttet") End Sub Private Function redigerKolonne(ræk, kol) Dim ind, red, blank As Boolean ind = Sheets(1).Cells(ræk, kol) red = "" blank = True
For f = 1 To Len(ind) tegn = Mid(ind, f, 1) If tegn = " " Then red = red + tegn blank = True Else If blank = True Then tegn = UCase(tegn) blank = False Else tegn = LCase(tegn) End If
red = red + tegn End If Next f
redigerKolonne = red End Function Private Function fjernTal(ind) Dim red, tegn, p red = ""
p = InStr(ind, " ") If p > 0 Then ind = Mid(ind, p + 1) End If
For f = 1 To Len(ind) tegn = Mid(ind, f, 1) If Not (tegn >= "0" And tegn <= "9") Then red = red + tegn End If Next f fjernTal = red End Function
Her er koden for: (har kørt test på dit uddrag) & selv tak! Rem Version 2 Rem ========= Dim antalRæk Sub FjernTalMv() Dim by, redBy antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
For række = 1 To antalRæk Sheets(1).Cells(række, 6) = redigerKolonne(række, 2) 'Navn tages fra kolonne B - indsættes i kolonne F by = redigerKolonne(række, 4) 'By tages fra kolonne D - indsættes i kolonne H Sheets(1).Cells(række, 8) = fjernTal(by) Next række
MsgBox ("Redigering afsluttet") End Sub Private Function redigerKolonne(ræk, kol) Dim ind, red, blank As Boolean ind = Sheets(1).Cells(ræk, kol) red = "" blank = True
For f = 1 To Len(ind) tegn = Mid(ind, f, 1) If tegn = " " Then red = red + tegn blank = True Else If blank = True Then tegn = UCase(tegn) blank = False Else tegn = LCase(tegn) End If
red = red + tegn End If Next f
redigerKolonne = red End Function Private Function fjernTal(ind) Dim red, tegn, p red = ""
p = InStr(ind, " ") If p > 0 Then ind = Mid(ind, p + 1) End If
For f = 1 To Len(ind) tegn = Mid(ind, f, 1) If Not (tegn >= "0" And tegn <= "9") Then red = red + tegn End If Next f fjernTal = red End Function
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.