Krånglar du inte till det i onödan?
Sök efter mellanslag och byt ut mot ingenting:
Cells(I, 2).Value = Replace(Cells(I, 2).value, " ", "")
En ännu enklare variant är att "låna" excels funktion TALVÄRDE (kolla i excel hur det fungerar). Du kör helt enkelt "WorksheetFunction.NumberValue"
Om vi mellanlandar i temp
Temp = Cells(I, 2).Value
så kan vi omvandlar allt på en rad:
Cells(I, 2).Value = WorksheetFunction.NumberValue(Temp, ",", " ")
Det första argumentet är indata (temp). Det andra argumentet berättar att komma (,) är decimaltecknet och det tredje att mellanslag (" ") är tusentalsavgränsare.
Jag skulle desutom börja med excels STÄDA och RENSA bara för att ta bort eventuellt skräp och kankse en IF-sats för att kolla så att cellen inte är ett tal readan. Men egentligen skulle du klara dig med
Cells(I, 2).Value = WorksheetFunction.NumberValue(Cells(I, 2).Value , ".", " ")
Sub OmvandlaTillBelopp()
Dim AktuellCell As Range
For Each AktuellCell In Range("B9", "B62").Cells
Temp = AktuellCell.Value
If Not IsNumeric(Temp) Then
Temp = WorksheetFunction.Clean(Temp)
Temp = WorksheetFunction.Trim(Temp)
AktuellCell.Value = WorksheetFunction.NumberValue(Temp, ",", " ")
End If
Next AktuellCell
End Sub
För din egen framtids skull. Kolla in Power Query. Det är excels hjälpmedel just för att importera och städa upp data från andra program. Du kan både "spela in" frågor och redigera frågorna i det förenklade frågespråket M
Äldre excel:
https://support.office.com/sv-se/article/komma-igång-med-power-query-7104fbee-9e62-4cb9-a02e-5bfb1a6c536a
Nyare
https://support.office.com/sv-se/article/hämta-transformation-i-excel-881c63c6-37c5-4ca2-b616-59e18d75b4de