Code Autofilter ngày/tháng/năm trong Excel 2003. (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

TrungChinhs

Thành viên tích cực
Tham gia
18/2/08
Bài viết
1,475
Được thích
2,470
Nghề nghiệp
Công chức
Hôm nay loay hoay mãi mới viết được code để Autofilter ngày/tháng/năm trong Excel 2003. Post lên để các bạn tham khảo và góp ý.

Hướng dẫn cách chạy thử:
Trong file là ngày/tháng/năm từ 01/01/2011 đến 31/12/2012
Muốn lọc ngày nào bạn đúp chuột vào ô chứa ngày đó và chọn "Lọc theo ngày/tháng/năm".
Muốn lọc tháng nào bạn đúp chuột vào ô có chứa tháng đó và chọn "Lọc theo tháng/năm".
Muốn lọc năm nào nào bạn đúp chuột vào ô có chứa năm đó và chọn "Lọc theo năm".
Để xóa Autofilter bạn phải chuột vào ô bất kỳ.
 

File đính kèm

Hôm nay loay hoay mãi mới viết được code để Autofilter ngày/tháng/năm trong Excel 2003. Post lên để các bạn tham khảo và góp ý.

Hướng dẫn cách chạy thử:
Trong file là ngày/tháng/năm từ 01/01/2011 đến 31/12/2012
Muốn lọc ngày nào bạn đúp chuột vào ô chứa ngày đó và chọn "Lọc theo ngày/tháng/năm".
Muốn lọc tháng nào bạn đúp chuột vào ô có chứa tháng đó và chọn "Lọc theo tháng/năm".
Muốn lọc năm nào nào bạn đúp chuột vào ô có chứa năm đó và chọn "Lọc theo năm".
Để xóa Autofilter bạn phải chuột vào ô bất kỳ.
Code AutoFilter ngày tháng đã nói nhiều rồi (hình như anh chưa xem mấy bài viết của em thì phải)
Thật ra không phải như cách anh đã viết đâu
PHP:
Private Sub OptionButton1_Click()
  Dim Dat As Long
  Dat = DateSerial(Year(ActiveCell), Month(ActiveCell), Day(ActiveCell))
  With Sheet1.Range("C3").Resize(10000)
    .AutoFilter 1, ">=" & CLng(Dat), xlAnd, "<=" & CLng(Dat)
  End With
  Unload Me
End Sub
PHP:
Private Sub OptionButton2_Click()
  Dim sDat As Long, eDat As Long
  sDat = DateSerial(Year(ActiveCell), Month(ActiveCell), 1)
  eDat = DateSerial(Year(ActiveCell), Month(ActiveCell) + 1, 0)
  With Sheet1.Range("C3").Resize(10000)
    .AutoFilter 1, ">=" & CLng(sDat), xlAnd, "<=" & CLng(eDat)
  End With
  Unload Me
End Sub
PHP:
Private Sub OptionButton3_Click()
  Dim sDat As Long, eDat As Long
  sDat = DateSerial(Year(ActiveCell), 1, 1)
  eDat = DateSerial(Year(ActiveCell), 12, 31)
  With Sheet1.Range("C3").Resize(10000)
    .AutoFilter 1, ">=" & CLng(sDat), xlAnd, "<=" & CLng(eDat)
  End With
  Unload Me
End Sub
Không cần phải qua công đoạn biến đổi chuổi gì cả
Điểm quan trọng cần chú ý:
- Phải đổi giá trị của Criteria ra dạng Double hoặc Long (nhờ hàm convert CLng hoặc CDbl)
- Dữ liệu phải là ngày tháng thật sự
-----------------
 

File đính kèm

Upvote 0
Code AutoFilter ngày tháng đã nói nhiều rồi (hình như anh chưa xem mấy bài viết của em thì phải)
Thật ra không phải như cách anh đã viết đâu
PHP:
Private Sub OptionButton1_Click()
  Dim Dat As Long
  Dat = DateSerial(Year(ActiveCell), Month(ActiveCell), Day(ActiveCell))
  With Sheet1.Range("C3").Resize(10000)
    .AutoFilter 1, ">=" & CLng(Dat), xlAnd, "<=" & CLng(Dat)
  End With
  Unload Me
End Sub
PHP:
Private Sub OptionButton2_Click()
  Dim sDat As Long, eDat As Long
  sDat = DateSerial(Year(ActiveCell), Month(ActiveCell), 1)
  eDat = DateSerial(Year(ActiveCell), Month(ActiveCell) + 1, 0)
  With Sheet1.Range("C3").Resize(10000)
    .AutoFilter 1, ">=" & CLng(sDat), xlAnd, "<=" & CLng(eDat)
  End With
  Unload Me
End Sub
PHP:
Private Sub OptionButton3_Click()
  Dim sDat As Long, eDat As Long
  sDat = DateSerial(Year(ActiveCell), 1, 1)
  eDat = DateSerial(Year(ActiveCell), 12, 31)
  With Sheet1.Range("C3").Resize(10000)
    .AutoFilter 1, ">=" & CLng(sDat), xlAnd, "<=" & CLng(eDat)
  End With
  Unload Me
End Sub
Không cần phải qua công đoạn biến đổi chuổi gì cả
Điểm quan trọng cần chú ý:
- Phải đổi giá trị của Criteria ra dạng Double hoặc Long (nhờ hàm convert CLng hoặc CDbl)
- Dữ liệu phải là ngày tháng thật sự
-----------------
có thể lọc từ ngày nào đến ngày nào được không thầy nếu được mong thầy giúp code theo nội dung sheet LỌC
thanhk thầy
 

File đính kèm

Upvote 0

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

Back
Top Bottom