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:

 

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