在切片器中选择最近的日期

问题描述 投票:0回答:1

我被这个问题难住了 - 我目前正在自动化一个文件,我需要宏在这个特定选项卡中动态选择最新的日期切片器。我当前的代码正在选择切片器中列出的所有日期。

Sub maxdateslicer()
Sheets("FIP").Select
Application.ScreenUpdating = False
With ActiveWorkbook.SlicerCaches("slicer_Execution_Date1")
    .ClearManualFilter
    For Each myitem In .SlicerItems
        myitem.Selected = CDate(myitem.Name) = Date - 1
    Next myitem
End With
Application.ScreenUpdating = True

excel vba date updates slicers
1个回答
0
投票

一种方法可能是按升序对切片器进行排序(实际上,默认排序是按升序排序),然后将每个项目的 Selected 属性设置为 False,除了最后一项...

Sub maxdateslicer()
    
    Application.ScreenUpdating = False
    
    Dim slicerIndex As Long
    
    With ActiveWorkbook.SlicerCaches("Slicer_Date")
        .ClearManualFilter
        .SortItems = xlSlicerSortAscending
        For slicerIndex = 1 To .SlicerItems.Count - 1
            .SlicerItems(slicerIndex).Selected = False
        Next slicerIndex
    End With
    
    Application.ScreenUpdating = True
    
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.