Code Ẩn dòng theo điều kiện ngày tháng!

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Chào các bạn
Tôi thường làm việc với ngày tháng, và chọn 1 tháng để làm việc, nhưng bảng tính của tôi quá dài nên việc di chuyển đến các hàng trong bảng tính làm việc thì gặp nhiều khó khăn
Ví dụ: Từ B7:B10000 là ngày tháng, mình muốn làm việc tháng 2, bây giờ mình đặt cell B3 =2, và bấm code, như vậy các hàng trong cột B khác với tháng 2 thì bị ẩn đi, chỉ còn chừa các hàng mà cột B có tháng 2 hoặc hàng trống
Và các bạn cũng giúp code cho hiện trở lại các dòng ẩn luôn
Cảm ơn các bạn!

Bạn có thể gõ vào cell B2 công thức =OR(MONTH($B7)=$B$3,LEN($B7)=0) rồi dùng Advanced Filter để lọc
Code:

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range, rCrit As Range
  On Error Resume Next
  If Target.Address = "$B$3" Then
    Set rng = Range("B6:B1000")
    Set rCrit = Range("B1:B2")
    rCrit(2, 1).Value = "=OR(MONTH($B7)=$B$3,LEN($B7)=0)"
    rng.AdvancedFilter 1, rCrit
    Target.Select
  End If
End Sub

Hoặc tổng quát hơn 1 chút:

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range, rCrit As Range
  Dim sFirst As String
  If Target.Address = "$B$3" Then
    Set rng = Range("B6:B1000")
    Set rCrit = Range("B1:B2")
    sFirst = rng(2, 1).Address(0, 1)
    rCrit(2, 1).Value = "=OR(MONTH(" & sFirst & ")=" & Target.Address & ",LEN(" & sFirst & ")=0)"
    rng.AdvancedFilter 1, rCrit
    Target.Select: rCrit.ClearContents
  End If
End Sub

Đoạn Set rCrit = Range("B1:B2") bạn có thể sửa lại thành vùng nào tùy thích (ví dụ: Set rCrit = Range("IV1:IV2") cũng được)

www.giaiphapexcel.com/diendan/threads/code-%E1%BA%A8n-d%C3%B2ng-theo-%C4%91i%E1%BB%81u-ki%E1%BB%87n-ng%C3%A0y-th%C3%A1ng.76806/

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 1 ▥ 0
Quảng cáo

Bạn nên đọc

Bình luận

Quảng cáo

Cũ vẫn chất

Xem thêm