Nguyễn Trần Tuấn
Nguyễn Trần Tuấn
Thảo luận 1 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 460 lượt xem

Mình đã làm theo ví dụ trong bài học này nhưng chỉ cần gán biến dưới

Mình đã làm theo ví dụ trong bài học này nhưng chỉ cần gán biến dưới dạng giá trị ngày tháng (Date) là có kết quả mà không cần phải chuyển đổi dữ liệu như cách Thầy đã làm nữa.

Dưới đây là Sub của mình cho ra kết quả đúng
===========
Sub Loc_Ngay()

'Gan bien de loc ngay
Dim TuNgay As Date
Dim DenNgay As Date
TuNgay = Range("G1").Value
DenNgay = Range("G2").Value

'Thao tac loc ngay
ActiveSheet.Range("$A$1:$C$13").AutoFilter Field:=1, Criteria1:= _
">=" & TuNgay, Operator:=xlAnd, Criteria2:="<=" & DenNgay
End Sub
=============

Cho mình hỏi vì sao Sub của mình lại chạy được ra kết quả đúng trong khi Thầy lại không chạy được khi gán biến dưới dạng Date?
Thảo luận 1 câu trả lời
Lượt xem 460 lượt xem
Vỗ tay vỗ tay
Nguyễn Trần Tuấn 00:03 - Mar 31, 2020
Trường hợp này do thiết lập ngày tháng mặc định trong máy tính (control pannel > region > Date) ở dạng dd/mm/yyyy thì sẽ xung đột với dạng ngày tháng mặc định của VBA nên phải xử lý bằng cách đưa về dạng Long (là dạng số, thay vì ngày tháng).
Cách đưa về dạng Long sẽ đúng trong mọi trường hợp, còn khi vẫn để dạng mặc định thì chỉ đúng khi để thiết lập ngày tháng mặc định dạng M/d/yyyy
Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông