Я также использую 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
Надеюсь, что это помогает людям, испытывающим эту ненужную проблему!
Дополнительная документация
- Как назначить макросы на ленте
- Скопируйте свои макросы в личную книгу макросов
,
десятичный разделитель, а не.
. Значения, такие123.45
как тексты, и не могут быть суммированы. Умножение на 1, как вы предлагаете, в этом случае также не сработает, потому что это не ситуация «числа, хранящиеся как текст», а ситуация «текст, хранящийся как текст». Если вы замените точки на запятые, Excel преобразует тексты в реальные числа (это относится только к французскому языку).