Gå til innhold

Får ikke til å konvertere tall som tekst til tall med excel macro


Anbefalte innlegg

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
Videoannonse
Annonse

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...