Avatar billede Basse25 Novice
30. juni 2011 - 13:04 Der er 5 kommentarer og
1 løsning

Adskil tal og tekst med et mellemrum

Jeg har nogle data, som ser således ud:
220  G
500 G
250 G
70 CL
70CL
4  ST
9,96KG
9,96KG
75CL

Jeg har behov for at få lavet et mellemrum der, hvor tal og tekst er sammenhængende, til dette har jeg prøvet nedenstående af, men når jeg har 9,96KG sætter den mellemrum ind før og efter kommaet (9 , 95 kg), hvordan undgår jeg dette? - Endvidere ville jeg gerne efterfølgende slette alle overflødige.blanke samt lave en tekst til kolonner, så jeg får data ud i 2 kolonner (adskilt ved mellemrum). Er dette muligt i samme makro?.


Function splittext(strText As String)
    Dim i As Integer
    Dim text As Boolean
    Dim strResult
    text = Not IsNumeric(Mid(strText, 1, 1))
    strResult = Mid(strText, 1, 1)
    For i = 2 To Len(strText)
        If text Then
            If IsNumeric(Mid(strText, i, 1)) Then
                text = False
                strResult = strResult & " " & Mid(strText, i, 1)
            Else
                strResult = strResult & Mid(strText, i, 1)
            End If
        Else
            If Not IsNumeric(Mid(strText, i, 1)) Then
                text = True
                strResult = strResult & " " & Mid(strText, i, 1)
            Else
                strResult = strResult & Mid(strText, i, 1)
            End If
        End If
    Next
    splittext = strResult
End Function
Avatar billede Slettet bruger
30. juni 2011 - 13:50 #1
Hvis det absolut skal være VBA, så se bort fra mit forslag. En formelløsning kunne være (med dine data i A2:A10):

I B2: =SLÅ.OP(9^9;--VENSTRE(A2;KOLONNE(1:1)))
I C2: =FJERN.OVERFLØDIGE.BLANKE(MIDT(A2;LÆNGDE(B2)+1;255))

Kopier formlerne nedad til og med række 10.
Avatar billede Tryphon Nybegynder
30. juni 2011 - 14:08 #2
Dit problem er, at et komma bliver opfattet som ikke numerisk.

prøv med

If Not IsNumeric(Mid(strText, i, 1)) And Not Mid(strText, i, 1) = "," Then

lige efter 2. else.

Fjern spaces før og efter en tekststreng hedder "Trim". F.eks. Trim(tekst). Eller LTrim/HTrim, hvis der skal fjernes blanke før og eller efter teksten.

Tekst til kolonner: Prøv at indspille den som makro og se, hvad der kommer ud af det.

Forstår ikke helt dim if text then. Skulle det ikke være if text=true (or false) then
Avatar billede supertekst Ekspert
30. juni 2011 - 15:58 #3
alternativ:

Sub adskilTalTekst()
Dim antalRæk As Long, tal As Double, tekst As String, ræk As Long
Dim indhold As String, t As Integer, p As Byte

    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
   
    For ræk = 1 To antalRæk
        indhold = Trim(Range("A" & ræk))        'fjerner evt. for- og bag- blanke
       
        tekst = ""
        tal = 0
       
Rem redigeret TAL _ TEKST i kolonne B
        p = InStr(indhold, " ")
        If p = 0 Then
            For t = Len(indhold) To 1 Step -1
                tegn = Mid(indhold, t, 1)
                If IsNumeric(tegn) = True Then
                    tekst = Mid(indhold, t + 1)
                    tal = Left(indhold, t)
                    Range("B" & ræk) = tal & " " & tekst
                    Exit For
                End If
            Next t
        Else
            Range("B" & ræk) = indhold
            tekst = Mid(indhold, p + 1)
            tal = Left(indhold, p - 1)
        End If
         
Rem TAL i kolonne C Tekst i kolone D
        Range("C" & ræk) = tal
        Range("D" & ræk) = tekst
    Next ræk
End Sub
Avatar billede Basse25 Novice
04. juli 2011 - 09:19 #4
Tak for alle forslag. Jeg har brugt forslaget fra "dkhanknu" (jeg kunne ikke få forslaget fra "Supertekst" til at virke.

dkhanknu vil du give et svar, så jeg kan give dig point.
Avatar billede Basse25 Novice
01. august 2011 - 09:41 #5
dkhanknu - Må jeg give dig dine velfortjente point?
Avatar billede Slettet bruger
01. august 2011 - 13:02 #6
OK
Hans
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester