Code VBA để Slicer tự động chọn ngày hiện tại (1 người xem)

Liên hệ QC

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

Tôi tuân thủ nội quy khi đăng bài

thuytrangbp28

Thành viên hoạt động
Tham gia
28/3/18
Bài viết
192
Được thích
114
Giới tính
Nam
Chào các bạn !
Nhờ các bạn viết code VBA giúp mình để khi mở tập tin hoặc chọn Sheet thì Slicer trong Sheet đó tự động chọn ngày hiện tại. Ví dụ: hôm nay là ngày 06/06/2024 thì khi mở file lên, Slicer sẽ tự động chọn ngày này từ các mục trong Slicer (như ảnh bên dưới)
Cảm ơn các bạn !
1.png
 

File đính kèm

Thử thu lại macro rồi sửa lại xem sao?
 
Upvote 0
Thử thu lại macro rồi sửa lại xem sao?
Cảm ơn bạn, mình đã ghi Macro và viết được đoạn code, nhưng khi chạy bị báo lỗi như hình, nhờ bạn và mọi người sửa giúp
Mã:
Private Sub Worksheet_Activate()
    Dim sl As Slicer
    Dim si As SlicerItem
    Dim currentDate As Date
    Dim slicerFound As Boolean
    
    currentDate = Date
    currentDate = Format(currentDate, "dd/mm/yyyy")
    
    slicerFound = False
    For Each sl In ActiveSheet.SlicerCaches("Slicer_NgayThang")
        If sl.Name = "Slicer_NgayThang" Then
            slicerFound = True
            For Each si In sl.SlicerItems
                If si.Name = currentDate Then
                    si.Selected = True
                Else
                    si.Selected = False
                End If
            Next si
            Exit For
        End If
    Next sl
    
    If Not slicerFound Then
        MsgBox "Không có slicer"
    End If
End Sub
1.png
 

File đính kèm

Upvote 0
Cảm ơn bạn, mình đã ghi Macro và viết được đoạn code, nhưng khi chạy bị báo lỗi như hình, nhờ bạn và mọi người sửa giúp
Thử với code này xem sao. Thả code này vào sheet có cái slicer đó. Đảm bảo phải có cái Slicer NgayThang
Mã:
Private Sub Worksheet_Activate()
    Dim T As String, Item As slicerItem
    T = Format(Now(), "m/d/yyyy")
    With ThisWorkbook
        .SlicerCaches("Slicer_NgayThang").ClearManualFilter
        If .SlicerCaches("Slicer_NgayThang").SlicerItems.Count > 0 Then
            For Each Item In .SlicerCaches("Slicer_NgayThang").SlicerItems
                If Item.Name <> T Then
                    Item.Selected = False
                Else
                    Item.Selected = True
                End If
            Next
        End If
    End With
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom