Anhduong2015
Thành viên chính thức


- Tham gia
- 29/7/21
- Bài viết
- 53
- Được thích
- 12
File đính kèm
Lần chỉnh sửa cuối:
Không phải chỗ Cdate đó anh ạ vì chỗ đó em đã Comment Block rồi.Không liên quan gì chỗ nào khác.
Dính chưởng ở ngay đây này:
View attachment 274969
1/ Lần sau chụp hình thì chụp phun không che toàn màn hình để biết cái DateTime của máy tính là gì.
2/ Gửi file và code lên, chứ ảnh đẹp chỉ ngắm thôi.
Không phải chỗ Cdate
Không đúng nha anh. Cái này em dùng Sub trên Module s3_laytenngay không phải ghi từ Userform ạ.Đoán đúng luôn.
Dùng User form thì đừng có bao giờ dùng CDate() mà phải dùng DateSerial().
Nhiều bài nói cái này rồi.
Bằng chứng là ngày tháng ghi từ Form xuống bảng tính là ăn chuỗi chứ có phải DateTime xịn đâu. Nhìn E13 trở xuống đó.
View attachment 274988
View attachment 274987
* Thêm một cái nữa. Dữ liệu Number, DateTime đừng có canh lề, cứ để mặc định nhảy về bên phải của Cell. Để nhìn một phát là biết dữ liệu có đúng chuẩn không.
Không đúng nha anh. Cái này em dùng Sub trên Module s3_laytenngay không phải ghi từ Userform ạ.
1. Đầu tiên cám ơn anh đã góp ý giúp em. Tuy nhiên trong trường hợp này thì cái gốc rễ không phải là ở điểm gán dữ liệu ngày tháng sử dụng Cdate từ Userform xuống Sheet vì em đã xóa trắng (Clear All) dữ liệu cột ngày tháng và nhập tay lại vẫn như cũ.Tôi chỉ ra cái sai tận gốc rễ.
DateTime từ Form xuống bảng tính: Sai một phát nếu định dạng chuỗi DateTime đó khác thiết lập hệ thống.
DateTime lấy từ bảng tính lên mảng: Sai thêm một phát nữa nếu định dạng chuỗi DateTime đó khác thiết lập hệ thống.
Bạn từ từ tìm hiểu mà làm. Bí kíp, kỹ thuật tôi nêu hết rồi.
Đọc ----- thật ------ chậm ------ thôi.
Đã kiểm tra thử thì đúng là sau khi transpose dic.keys ngày tháng bị đảo ngược. Mà lạ là nếu add key thông qua một biến long gán ngày tháng thì không lỗi, mà add trực tiếp thì lỗi.1. Đầu tiên cám ơn anh đã góp ý giúp em. Tuy nhiên trong trường hợp này thì cái gốc rễ không phải là ở điểm gán dữ liệu ngày tháng sử dụng Cdate từ Userform xuống Sheet vì em đã xóa trắng (Clear All) dữ liệu cột ngày tháng và nhập tay lại vẫn như cũ.
2. Vấn đề em thấy và đã chạy thực tế là khi sử dụng Application.WorksheetFunction.Transpose nó sẽ ra ngày tháng đảo ngược, ngược lại thì đúng.
Cám ơn bạn nhiều nhé, mình đã thêm một biến long vào thì kết quả đã ra đúng. mặc dù không rõ tại sao nhưng kết quả đúng yêu cầu là tuyệt vời.Đã kiểm tra thử thì đúng là sau khi transpose dic.keys ngày tháng bị đảo ngược. Mà lạ là nếu add key thông qua một biến long gán ngày tháng thì không lỗi, mà add trực tiếp thì lỗi.
Nguyên nhân thì không rõ, còn khắc phục thì add key ngày tháng bằng hàm Dateserial cho đảm bảo
File kiểm tra lỗi:
Nguyên nhân thì không rõ, còn khắc phục thì add key ngày tháng bằng hàm Dateserial cho đảm bảo
Đúng là em cũng đọc nhiều bài và tìm hiểu thì Date Time nên dùng value2.Không hề bị làm sao.
Vụ DateTime này mình nói rồi. Bạn để ý các bài của mình đều xử lý vậy.
Cám ơn anh nhiều nhé.Không hề bị làm sao.
Vụ DateTime này mình nói rồi. Bạn để ý các bài của mình đều xử lý vậy.
Không biết ai làm thế nào chứ với tôi thì tôi sẽ dùng 1 vòng lặp duyệt qua hết keys lấy kết quả vào 1 mảng thì mới chen vị trí chứa giá trị rỗng vào được.Nhân tiện các anh/ chị cho em hỏi thêm là trong câu lệnh: .Range("F10").Resize(, c2).Value = dic2.Keys làm sao để các kết quả cách nhau xen kẽ một cột. chỗ này hơi khó diễn tả anh/chị quan tâm xin vui lòng xem hình giúp em. Do cùng bài toán em sợ mở nhiều chủ đề không hay nên có gì không đúng mong anh/chị thông cảm giúp.
Xin cám ơn rất nhiều.
View attachment 275008
View attachment 275009
Anh/chị có thể giúp em đoạn code lấy key từ dic ra được không? Em viết mà mãi không được ạ.Không biết ai làm thế nào chứ với tôi thì tôi sẽ dùng 1 vòng lặp duyệt qua hết keys lấy kết quả vào 1 mảng thì mới chen vị trí chứa giá trị rỗng vào được.
Củ chuối mà ra kết quả là tốt rồi, chứ củ sâm mà không ra kết quả thì cũng vô ích bạn ạ.Hiện tại em mới nghĩ ra được code chạy thủ công như thế này kết quả đúng nhưng nhìn hơi củ chuối xíu.
Không biết ai làm thế nào chứ với tôi thì tôi sẽ dùng 1 vòng lặp duyệt qua hết keys lấy kết quả vào 1 mảng thì mới chen vị trí chứa giá trị rỗng vào được.
Tạo riêng cho nó cái mảng. Đưa nó vào mảng ngay từ lúc add key. Nếu Dic chưa có gì thì add vào cột đầu trong mảng rồi cho biến cột tăng dần, khi dic đã tồn tại key thì tăng biến cột thêm 1 nữa rồi add vào mảng... nếu khó hiểu thì bỏ qua nha...Hiện tại em mới nghĩ ra được code chạy thủ công như thế này kết quả đúng nhưng nhìn hơi củ chuối xíu.
View attachment 275020