如何在枢纽分析表中今天检查和取消检查前一天

时间:2019-05-16 14:17:52

标签: excel vba

我需要检查今天的日期,并使用VBA(不包括周六和周日)取消选中数据透视表中的最后一个可用日期。

我在VBA中是nooob,所以我尝试记录宏并进行了一些更改 数据透视表可能有所不同,并且会将一些带有日期的变量传递给Check和uncheck。

Sheets("A Chart").PivotTables("PivotTable8").PivotCache.Refresh
ActiveWorkbook.RefreshAll

With ActiveSheet.PivotTables("PivotTable8").PivotFields("Added Date")
  .PivotItems("$inbound_previousday$").Visible = False
  .PivotItems("$today$").Visible = True
   Sheets("B Chart").PivotTables("PivotTable8").PivotCache.Refresh
   ActiveWorkbook.RefreshAll

   With ActiveSheet.PivotTables("PivotTable8").PivotFields("Added Date")
     .PivotItems("$outbound_Previousday").Visible = False
     .PivotItems("$today$").Visible = True
   End With

End With

是否可以查看今天的日期并取消选中下拉菜单中第一个最可用的日期。

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试一下:

    Sub FilterDays()

    Dim NumDaysSelected As Long
    Dim StartDate, EndDate As Date
    Dim pt As PivotTable

    NumDaysSelected = 27 'Change this number to select the amount of days selected
    StartDate = Date - NumDaysSelected
    EndDate = Date

    Set pt = ActiveSheet.PivotTables("PivotTable8")
        pt.PivotFields("Added Date").ClearAllFilters 'This line is needed to clear existing filter before applying new one
        pt.PivotFields("Added Date").PivotFilters.Add Type:=xlDateBetween, _
            Value1:=StartDate, Value2:=EndDate

    End Sub

答案 1 :(得分:0)

由于您的值是恒定的,因此这是最简单的。 Date今天返回。

With Sheets("A Chart").PivotTables("PivotTable8").PivotFields("Added Date")
    .PivotItems(Date - 27).Visible = False
    .PivotItems(Date).Visible = True
End With