Отображение серийного номера без точки, рассматриваемой как десятичный разделитель - PullRequest
0 голосов
/ 23 октября 2019

Для работы у меня есть список номеров машин в форме N.NNN (всегда 4 цифры с точкой после первого числа). Так, например, 1.578 или 5.247. Там есть 2 проблемы:

1) Точка считается десятичным разделителем и поэтому заменяется запятой "," (я во Франции) ... Но я не хочу эту запятую! "Хороший официальный способ" написать это с точкой.

2) Поскольку точка должна быть десятичным разделителем, если автомобиль получил число 2.200, он будет отображаться как "2,2"... Но нам нужно "00" после "2.2"

Я получил небольшой код VBA, который помогает мне перевести все эти числа в хороший формат, но эта десятичная дробь сводит меня с ума, я искалкакое-то время в Интернете безуспешно.

Вот небольшая часть кода, которая может вас заинтересовать:

Const SpecialCharacters As String = "!,@,#,$,%,^,&,*,(,),{,[,],},?, ,-,_,/,\,."   'Defines the special characters we want to get rid of in the Tools codes

On Error Resume Next
For Each Lin In Worksheets("Tabelle1").Range("A1:A" & LastCell) 
        CodeVal = Worksheets("Tabelle1").Range("A" & Lin.Row).Value
        'Modify the Short Code to have a point as second character
        For Each Char In Split(SpecialCharacters, ",")                                              'Deletes all the other special characters possibles, even more... Definition of "SpecialCharacters" at the beginning of this code part
            NewCodeVal = CStr(Replace(CodeVal, Char, ""))
        Next
        If Len(CodeVal) = 4 Then
            CodeVal = Left(NewCodeVal, 1) & Chr(46) & Right(NewCodeVal, Len(NewCodeVal) - 1)
        ElseIf Len(CodeVal) = 3 Then
            CodeVal = Left(NewCodeVal, 1) & Chr(46) & Right(NewCodeVal, Len(NewCodeVal) - 1) & "0"
        ElseIf Len(CodeVal) = 2 Then
            CodeVal = Left(NewCodeVal, 1) & Chr(46) & Right(NewCodeVal, Len(NewCodeVal) - 1) & "00"
        End If
        With Worksheets("Tabelle1").Range("B" & Lin.Row)
            .Value = CodeVal
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .Font.Size = 11
            .Font.Name = Calibri
            .NumberFormat = "##0.000"
        End With

Next
On Error GoTo 0

Как вы уже видели, я попытался вставить точку в видеи ascii, и я безуспешно пытался использовать форматирование чисел ...

Спасибо заранее за вашу помощь!

...