Saya juga menggunakan Excel dengan lokal Prancis, dan sering menghadapi masalah ini dengan file CSV. Seperti yang dijelaskan oleh orang lain, angka-angka Perancis menggunakan koma sebagai pemisah desimal, dan angka seperti 123.45
ditafsirkan sebagai teks oleh Excel.
Cara tercepat untuk menghindari ini, adalah menggantinya .
dengan ,
. Anda dapat melakukannya dengan cepat dengan Temukan / Ganti, seperti yang disarankan oleh David.
Bagi mereka yang sering menghadapi masalah ini, Anda dapat menggunakan kode ini ( diadaptasi dari jawaban ini ), menyimpannya di buku kerja PRIBADI Anda dan menetapkannya ke tombol di pita:
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
Harapan yang membantu orang mengalami masalah yang tidak perlu ini!
Dokumentasi tambahan
- Cara menetapkan makro ke pita
- Salin makro Anda ke Buku Kerja Makro Pribadi
,
adalah pemisah desimal, bukan.
. Jadi nilai like123.45
adalah teks, dan tidak bisa disimpulkan. Mengalikan dengan 1 seperti yang Anda sarankan tidak akan berfungsi baik dalam kasus ini, karena ini bukan situasi "angka yang disimpan sebagai teks", melainkan situasi "teks yang disimpan sebagai teks". Jika Anda mengganti titik dengan koma, Excel akan mengubah teks menjadi bilangan real (ini hanya berlaku untuk lokal Prancis).