Ersätta punkttecken med kommatecken
Det är vanligt förekommande att listor från andra program och också från andra delar av världen innehåller punkttecken som avskiljare mellan heltal och decimaler, såsom 10.22. Att konvertera dessa värden till svensk standard, dvs till kommatecken, kan vara litet knepigt i VBA. Det gäller i synnerhet värden med fler decimaler än 2.
Manuellt är det ett enkelt förfarande och som dessutom fungerar:
- Markera området med värden som ska konverteras.
- Välj kommandot Redigera | Ersätt...
- I fältet för "Sök efter" anges ett punkttecken(.).
- I fältet för "Ersätt med" anges ett kommatecken (,).
För automatisering mha VBA kan vi inte använda oss av kommatecken då Excel tolkar det som en tusentalsavskiljare (!) och inte som ett kommatecken.
Följande procedur visar att vi måste ersätta punkttecken med ett punkttecken, vilket tolkas som ett kommatecken när vi har svenska inställningar i MS Windows!
Option Explicit
Sub Ersatt_Punkt_Komma()
'© 2002 Alla rättigheter XL-Dennis
Dim wbBok As Workbook
Dim wsBlad As Worksheet
Dim rnData As Range
Set wbBok = ThisWorkbook
Set wsBlad = wbBok.Worksheets("Blad1")
With wsBlad
Set rnData = .Range(.Range("A1"), .Range("H65536").End(xlUp))
End With
Application.ScreenUpdating = False
rnData.Replace What:=".", Replacement:=".", LookAt:=xlPart, Searchorder:=xlByRows, _
MatchCase:=False, Matchbyte:=False
Application.ScreenUpdating = True
End Sub