30. juni 2011 - 13:04Der 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
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
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))
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
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
dkhanknu - Må jeg give dig dine velfortjente point?
Synes godt om
Slettet bruger
01. august 2011 - 13:02#6
OK Hans
Synes godt om
Ny brugerNybegynder
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.