Format Date

Liên hệ QC

emgaingayngo

Thành viên hoạt động
Tham gia
9/2/07
Bài viết
141
Được thích
5
Trong Control panel mình đã định dạng ngày cho hệ thống Short Date :"dd/mm/yy". Trong Excel cũng định dạng là "dd/mm/yy", trên cell thể hiện dạng "dd/mm/yy" nhưng trên thanh công thức là "dd/mm/yyyy".

Dùng textbox để ghi ngày cho cell thì trên thanh công thức thể hiện là "dd/mm/yy" do đó khi mình dùng công thức Offset để tham chiếu thì Excel không hiểu, chỉ hiểu ngày nào có dạng "dd/mm/yyyy" mặc dù trên cell thể hiện dạng "dd/mm/yy".

Xin hỏi mình bị sai chổ nào? Và cách giải quyết ra sao?
Thanks Much!

Chắc phải gửi file lên quá. File đây các bạn ơi.
 

File đính kèm

Tôi chưa hiểu ý của bạn nhưng cũng xin góp mấy ý kiến:
Cách gõ dd/mm/yy là do ta tự gõ tắt... Bạn thử tưởng tượng đi, nếu như bạn gõ 07/08/29 và 09/08/30... vậy bạn đoán xem Excel hiểu số 29 và 30 là năm nào?
Theo quy định của Microsoft (hay chỉ trên máy tôi cũng chưa dám khảng định) thì nếu gõ tắt, 2 số thể hiện YEAR nhỏ hơn hoặc bằng 29 thì Excel sẽ hiểu là năm 20XX... Còn ngược lại, bạn gõ 2 số thể hiện YEAR lớn hơn hoặc bằng 30 thì xem như năm dc hiểu có dạng 19XX
Tôi đoán nếu bạn nhập đầy đủ theo dạng dd/mm/yyyy sẽ ko có vấn đề
Còn nếu vẫn chưa giãi quyết dc thì đành phải xem file bạn post lên vậy
ANH TUẤN

Uh.. Nói chung là giơi hạn trong khoảng 100 năm.. Llúc trước tôi biết Settings này nằm ở đâu đó mà giờ ko nhớ... hi.. hi..
Đúng là bình thường khi gõ 2 ký tự năm thì ko thấy gì... nhưng trong 1 vài trường hợp đặc biệt nào đó có thể gây sai lầm nghiêm trọng.. Mọi người phải thật chú ý chuyện này.. VD: tiền gửi ngân hàng từ năm 1904 đến nay.. giờ mình nhập lại dử liệu, coi chừng bị toi vì mấy ngày tháng năm ngày...
Mến
ANH TUẤN
 
Upvote 0
When a two digit is enter, Interpret as a year system

anhtuan1066 đã viết:
Theo quy định của Microsoft (hay chỉ trên máy tôi cũng chưa dám khảng định)
Cái này thì sẽ được quy định trong Regional Setting / Data / Calendar
Thân.
 
Upvote 0
Tôi ko biết sai chổ nào (vì ko rành VBA) nhưng tôi dám khẳng định cái ngày tháng năm dc xuất ra từ text box có dạng TEXT chứ ko phải dạng DATE... Ko tin bạn cứ thử nó với hàm SUM sẽ rõ, nó luôn luôn cho giá trị = 0, chứng tỏ cell mà bạn nhập ko phải dạng DATE
 
Upvote 0
Private Sub cmdThiHanh_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("KQXS")
'Tim den hang cuoi cung trong Database
ws.Range("A65536").End(xlUp).Offset(1, 0).Select
iRow = ActiveCell.Row
'Copy du lieu tu frm vao sheets KQXS
txtNgay.Value = Format(txtNgay.Value, "dd/mm/yy")
Bạn sửa câu
txtNgay.Value = Format(txtNgay.Value, "dd/mm/yy")
thành
txtNgay.Value = Format(txtNgay.Value, "dd/mm/yyyy")
 
Upvote 0
To anhtuan1066 : Bạn nói đúng rồi, có cách nào format cho nó ra dạng Date không?
To ThuNghi : Mình đã thử sửa rồi, trên cell thể hiện là: "dd/mm/yyyy", thanh công thức cũng thể hiện là "dd/mm/yyyy" nhưng giống như anhtuan106 nói Excel chỉ hểu nó là text chứ không phải là date.
 
Upvote 0
Private Sub cmdThiHanh_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("KQXS")
'Tim den hang cuoi cung trong Database
ws.Range("A65536").End(xlUp).Offset(1, 0).Select
iRow = ActiveCell.Row
'Copy du lieu tu frm vao sheets KQXS
ws.Cells(iRow, 1).Value =DateSerial(Year(txtNgay.Value),Month(txtNgay.Value),Day(txtNgay.Value))
ws.Cells(iRow, 2).Value = cboDai.Value
Sửa dòng bold, chuyển ra ngày.
From EmGaiNgayNgo:

To ThuNghi : Cám ơn bạn nhiều. Mình làm được rồi. Mình còn thiếu kinh nghiệm quá.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom