Tôi cũng sử dụng Excel với ngôn ngữ tiếng Pháp và thường gặp phải vấn đề này với các tệp CSV. Theo giải thích của những người khác, các số của Pháp sử dụng trạng thái hôn mê làm dấu phân cách thập phân và một số giống như 123.45
được hiểu là văn bản của Excel.
Cách nhanh nhất để phá vỡ điều này, là thay thế .
bằng ,
. Bạn có thể thực hiện nhanh chóng với Tìm / Thay thế, theo đề xuất của David.
Đối với những người gặp phải vấn đề này khá thường xuyên, bạn có thể sử dụng đoạn mã này ( được điều chỉnh từ câu trả lời này ), lưu nó vào sổ làm việc CÁ NHÂN của bạn và gán nó vào một nút trong ruy-băng:
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
Hy vọng rằng sẽ giúp mọi người gặp vấn đề không cần thiết này!
Tài liệu bổ sung
- Cách gán macro cho ruy băng
- Sao chép macro của bạn vào Sổ làm việc Macro cá nhân
,
là dấu phân cách thập phân, không phải.
. Vì vậy, các giá trị như123.45
là văn bản và không thể tóm tắt. Nhân với 1 như bạn đề nghị sẽ không hoạt động trong trường hợp này, bởi vì đây không phải là tình huống "số được lưu dưới dạng văn bản", mà là tình huống "văn bản được lưu dưới dạng văn bản". Nếu bạn thay thế dấu chấm bằng hôn mê, Excel sẽ chuyển đổi các văn bản thành số thực (điều này chỉ áp dụng cho ngôn ngữ Pháp).