jim_smyth Skrevet 18. september 2010 Del Skrevet 18. september 2010 Jeg har et problem med å konvertere en tabulert tekst med tall som tekst til tall i excel mens jeg bruker macro. Det jeg gjør når jeg recorder macroen fungerer der og da, men når jeg spiller av macroen så fungerer det ikke. Det jeg gjør: Fil - Åpne fil og importerer en tabulert tekstfil. Jeg bruker importfunksjonen i excel. Tallene jeg skal ha inn har punktum som desimalseparator, så jeg må importere tallene som tekst. Så kommer konverteringen til tall: Jeg har prøvd to ulike metoder. 1) Erstatt "." med "," så blir tallene som tekst til ordentlige tall (slik jeg vil ha det). Problemet er at når jeg prøver å bruke det i en macro så fungerer det ikke. Tallene forblir tekst. Koden: Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False 2) Paste Special: Kopierer kolonnene jeg vil konvertere. Paste Special i tomme kolonner med kun Operation:Add, og tallene blir til tall og fungerer med autosummer. MEN DET FUNGERER IKKE I EN MACRO. Kan noen hjelpe meg med det? Lenke til kommentar
Wolverin Skrevet 18. september 2010 Del Skrevet 18. september 2010 Jeg har et problem med å konvertere en tabulert tekst med tall som tekst til tall i excel mens jeg bruker macro. Det jeg gjør når jeg recorder macroen fungerer der og da, men når jeg spiller av macroen så fungerer det ikke. Det jeg gjør: Fil - Åpne fil og importerer en tabulert tekstfil. Jeg bruker importfunksjonen i excel. Tallene jeg skal ha inn har punktum som desimalseparator, så jeg må importere tallene som tekst. Så kommer konverteringen til tall: Jeg har prøvd to ulike metoder. 1) Erstatt "." med "," så blir tallene som tekst til ordentlige tall (slik jeg vil ha det). Problemet er at når jeg prøver å bruke det i en macro så fungerer det ikke. Tallene forblir tekst. Koden: Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False 2) Paste Special: Kopierer kolonnene jeg vil konvertere. Paste Special i tomme kolonner med kun Operation:Add, og tallene blir til tall og fungerer med autosummer. MEN DET FUNGERER IKKE I EN MACRO. Kan noen hjelpe meg med det? Du må enkelt nok bare konvertere fra tekst til tall i VBA (Makro). I en tenkt case, så har du tallene: 1.1 1.4 40.65 789.543 1.7 Disse står i A1 til A5 i excel. Da kan du f.eks gjøre slik som dette. i = 0 Do While i < 5 i = i + 1 inn_tekst = Cells(i, 1) ut_tall = CDec(Replace(inn_tekst, ".", ",")) Range("B" & i).Select ActiveCell.FormulaR1C1 = ut_tall Loop Det du her gjør er å lese de inn i en variabel som heter inn_tekst. For å erstatte . med , og gjøre det om til noe som kan oppfattes som tall, så bruker du funksjonen Replace. For å gjøre det nå gyldige formatet om til et desimaltall, så konverterer jeg fra tekst til desimal med funksjonen CDec (cast to Decimal). Prøv selv :-) Lenke til kommentar
jim_smyth Skrevet 22. september 2010 Forfatter Del Skrevet 22. september 2010 Fikk det ikke helt til, men fant en annen metode som lignet med cDec osv. med NextCell istedenfor Do While. Takk for hjelpen. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå