Я также использую Excel с французским языком, и часто сталкиваюсь с этой проблемой с файлами CSV. Как объясняли другие, французские числа используют запятую в качестве десятичного разделителя, а число, подобное 123.45
, интерпретируется Excel как текст.
Самый быстрый способ обойти это, это заменить .
,
Вы можете сделать это быстро с Find/Replace, как предложено Дэвидом.
Для тех, кто сталкивается с этой проблемой довольно часто, вы можете использовать этот фрагмент кода (адаптированный из этого ответа), сохранить его в вашей ЛИЧНОЙ книге и назначить его кнопке на ленте:
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
Надеюсь, что это помогает людям, испытывающим эту ненужную проблему!
Дополнительная документация
- Как назначить макросы на ленте
- Скопируйте свои макросы в личную книгу макросов