Для работы у меня есть список номеров машин в форме 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, и я безуспешно пытался использовать форматирование чисел ...
Спасибо заранее за вашу помощь!