Làm sao để khi gõ số 1 tại 1 ô, sẽ tự động ra kết quả 1/2/2012 ngay tại ô đó?

Liên hệ QC

bebo021999

Thành viên gạo cội
Tham gia
26/1/11
Bài viết
5,950
Được thích
8,742
Giới tính
Nam
Nghề nghiệp
GPE
Các anh chị em cho hỏi trường hợp này:
A1=2012
A2=2
Tại A3: Khi nhập số từ 1-31, VD nhập số 9, sẽ hiển thị thành 9/2/2012?

Dùng công thức hay chức năng có sẵn trên Excel được không?
Tôi đã nghĩ phương án dùng name, VD, NAME có tên là 1 =DAT(A1,A2,1),....,NAME có tên là 31...
nhưng không cho phép đặt tên bằng số.

Nếu không, nhờ ACE cho 1 đoạn code được không?

Xin cảm ơn,
 
- Code dùng mảng
- Cho phép copy từ nơi khác paste vào luôn
Ẹc... Ẹc...
Cảm ơn anh ndu viết code rất hay!
Mình có thêm một điều kiên như thế này:
VD: Cell A3 là ngày 01/02/2012, tôi muốn cell A4 có ngày bằng hoặc lớn hơn cell A3. Nghĩa là giá trị của Cell hiện hành phải lớn hơn hoặc bằng Cell kề trên.
Nhờ anh giúp đỡ. Xin cảm ơn.
 
Upvote 0
Cảm ơn anh ndu viết code rất hay!
Mình có thêm một điều kiên như thế này:
VD: Cell A3 là ngày 01/02/2012, tôi muốn cell A4 có ngày bằng hoặc lớn hơn cell A3. Nghĩa là giá trị của Cell hiện hành phải lớn hơn hoặc bằng Cell kề trên.
Nhờ anh giúp đỡ. Xin cảm ơn.
Nếu như cell ở trên = rổng thỉ sao? Hoặc giả như cell ở trên không phải ngày tháng thì sao?
 
Upvote 0
Kiến thức của anh bebo021999 thì quá tốt rồi, tôi tin rằng nếu anh học VBA chỉ trong vòng khoảng 3, 4 tháng là thành cao thủ thôi (giống thày Concogia).

Bản thân tôi nghĩ VBA vất vả nhất thời gian đầu do chưa quen cách dùng của các đối tượng, từ hôm qua sau khi được các thày giảng giải tôi thấy thuật toán của nó cũng không có gì là khó hiểu lắm, đôi khi bản thân mình hình dung được bước đi thế nào rồi nhưng lại không viết ra được do chưa nắm vứng các thao tác để thực hiện (thuật toán trong VBA có khi còn dễ hơn công thức mảng trong Excel),

Bởi khi đã thành thạo các đối tượng rồi thì quan trọng là thuật toán (khả năng toán học của mỗi người).

Thực sự tôi rất khâm phục các thày Ptm0412, thày Ndu..., khả năng tư duy toán học của các thày quả là siêu việt quá.
 
Upvote 0
Nếu như cell ở trên = rổng thỉ sao? Hoặc giả như cell ở trên không phải ngày tháng thì sao?
Nếu Cell ở trên rỗng hoặc không phải ngày tháng thì ở Cell dưới kề ta vẫn cho nhập giá trị ngày nào cũng được.

Cho phép copy từ nơi khác paste vào luôn
Cái này chỉ copy số 2 hoặc số 3 gì đó ! thì nó thể hiện ra ngày tháng năm, nếu copy ngày đã định dạng dd/mm/yyyy ( Ví dụ ngày 10/02/2012) thì code không tính được! có cách nào khắc phục không anh?
 
Upvote 0
Cái này chỉ copy số 2 hoặc số 3 gì đó ! thì nó thể hiện ra ngày tháng năm, nếu copy ngày đã định dạng dd/mm/yyyy ( Ví dụ ngày 10/02/2012) thì code không tính được! có cách nào khắc phục không anh?
Vì ngày 10/12/2012 là một số quá lớn (=40949) nên việc đưa vào hàm DateSerial để tạo ngày tháng năm sẽ làm phát sinh lỗi Overflow (tràn bộ nhớ). Cách khắc phục là mình lại thêm một đoạn code để bẫy lỗi. Ở bài #18, mình sử dụng câu lệnh If Abs([A3]) > 31 Then GoTo Err cũng nhằm mục đích này.
 
Upvote 0
Vì ngày 10/12/2012 là một số quá lớn (=40949) .
Mình cũng biết vấn đề này. Nhưng do tính chất công việc, nên thường xuyên copy hay Link Ngày tháng, nội dung ... giữa các Sheet (hoặc File) với nhau. Vì thế đọan code của anh ndu phát triển thêm điều kiện như mình nói trên thì rất tuyệt!
Xin cảm ơn sự hỗ trợ của các bạn!
 
Upvote 0
Web KT

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

Back
Top Bottom