MS Article: Excel theo IEEE 754 specification về cách lưu trữ và tính toán số dấu chấm động . Do đó, Excel chỉ lưu trữ 15 chữ số có nghĩa trong một số và thay đổi chữ số sau vị trí thứ mười lăm thành số 0.
Để định dạng số của bạn và cũng để đảm bảo rằng người dùng chỉ nhập số điện thoại, bạn có thể thực hiện việc này. Tôi giả định rằng bạn đang xác thực văn bản trong Phạm vi A1. Vui lòng sửa đổi nếu có.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Whoa
Application.EnableEvents = False
If Not Intersect(Target, Range("A1")) Is Nothing Then
'~~> If entered text is not a number then erase input
If Not IsNumeric(Range("A1").Value) Then
MsgBox "invalid Input"
Application.Undo
GoTo LetsContinue
End If
Range("A1").Value = "'" & Format(Range("A1").Value, "000000000000000000")
End If
LetsContinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub
followup
Nếu bạn đang sao chép và dán sau đó bạn sẽ phải định dạng đầu tiên G11 Phạm vi: G65536 thủ công như TEXT và sau đó sử dụng mã này
SNAPSHOT (Khi dán các giá trị số)

SNAPSHOT (Khi dán Non Numeric Values)

MÃ
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Whoa
Dim cl As Range
Application.EnableEvents = False
If Not Intersect(Target, Range("G11:G" & Rows.Count)) Is Nothing Then
For Each cl In Target.Cells
'~~> If entered text is not a number then erase input
If Not IsNumeric(cl.Value) Then
MsgBox "invalid Input"
Application.Undo
GoTo LetsContinue
End If
cl.Value = "'" & Format(cl.Value, "000000000000000000")
Next
End If
LetsContinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub
Nguồn
2012-06-21 08:13:39
+ 1 Câu hỏi Tốt :) –