我是一个新手,我是一个热心的学习者,一个犯很多错误的初学者。在我的数据透视表上,它正在拿起两年的日期,我热衷于只选择前两个最近的日期,而不是使用切片机。我试图让它有点动态,但我不断收到错误消息,
我试图在我的电子表格中设置来自日期和两个日期的单元格,或者是选择前两个最近日期的代码。我真的希望代码工作并拉出我的头发,因为我有其他几个数据透视表。每次我把单元格引用放在其间,日期就是我不断编码错误。
我希望枢轴项目像以前一样更具动态性,我会尝试在日期和日期添加验证,以使其更具动态性。
我希望枢轴项目是x第一个日期,y是第二个日期,指的是工作表上的两个单元格,我可以在工作表上修改,另一个代码只选择前两个最近的日期。
Sub DateSlection ()
With ActiveSheet
.PivotTables("PivotTable4").PivotFields("Date")
.PivotItems("11/2/2016").Visible = True
.PivotItems("10/26/2016").Visible = True
End With
End Sub
亲切的问候
阿里
答案 0 :(得分:0)
对于动态过滤器,您可以执行以下操作:
Sub DateSlection ()
Dim startDate As String
Dim endDate As String
With ActiveSheet
'Set your date parameters in the required date format
'- looks like you need US
startDate = Format(.Range("A1").Value, "mm/dd/yyyy")
endDate = Format(.Range("A2").Value, "mm/dd/yyyy")
'clear the existing filter and add the new
.PivotTables("PivotTable4").PivotFields("Date").ClearLabelFilters
.PivotTables("PivotTable4").PivotFields("Date").PivotFilters.Add Type _
:=xlDateBetween, Value1:=startDate, Value2:=endDate
End With
End Sub
我也理解你想获得数据透视表中的前两个日期?如果是这样,你可以这样做:
ActiveSheet.PivotTables("PivotTable4").PivotFields("Date").PivotItems(1)
ActiveSheet.PivotTables("PivotTable4").PivotFields("Date").PivotItems(2)
要获得最后两个日期,您可以这样做:
With ActiveSheet.PivotTables("PivotTable4").PivotFields("Date")
ptCount = .PivotItems.Count
last = .PivotItems(ptCount)
secondLast = .PivotItems(ptCount - 1)
End With