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