Я также использую Excel с французской локалью и часто сталкиваюсь с этой проблемой при работе с CSV-файлами. Как объясняют другие, французские числа используют кому в качестве десятичного разделителя, а число типа 123.45
интерпретируется Excel как текст.
Самый быстрый способ обойти это, это заменить .
на ,
. Вы можете сделать это быстро с помощью Find/Replace, как предложил David.
Для тех, кто сталкивается с этой проблемой довольно часто, вы можете использовать этот кусок кода адаптированный из этого ответа ), сохранить его в вашей ЛИЧНОЙ рабочей книге и назначить его на кнопку на ленте:
Sub Comas2Dots()
Application.ScreenUpdating = False
If (MsgBox("Do you want to replace comas by dots?", vbOKCancel) = vbOK) Then
Const sTEMPCOMMA = "|comma|"
Const sTEMPDOT = "|dot|"
Const sCOMMA = ","
Const sDOT = "."
If TypeName(Selection) = "Range" Then
With Selection
.Replace sCOMMA, sTEMPCOMMA, xlPart
.Replace sDOT, sTEMPDOT, xlPart
.Replace sTEMPCOMMA, sDOT, xlPart
.Replace sTEMPDOT, sCOMMA, xlPart
End With
End If
End If
Application.ScreenUpdating = True
End Sub
Надежда, которая помогает людям, испытывающим эту ненужную проблему!
Дополнительная документация
- Как назначить макросы на ленту
- Скопируйте макросы в Personal Macro Workbook .