我试图在两个不同的工作表中的两个不同的数据透视表中比较和过滤每周分组的日期。我想比较两个表中的日期,如果它们是相同的,则复制该分组日期并将其放在另一个工作表中。我所拥有的VBA代码是比较一个月内的所有日期。 例如:
pivot table 1 pivot table 2
10/15/2013 - 10/21/2013 10/15/2013-10/21/2013
10/22/2013 - 10/28/2013 10/22/2013 - 10/28/2013
5/27/2014 - 6/2/2014 6/3/2014 - 6/9/2014
当我运行VBA时,我想将前两组日期复制到另一个工作表中,因为它们是相同的而忽略了第三组,因为它们不是。每个表中的日期数可能不同。这是我到目前为止的代码
Sub Find()
Dim Pvt1 As PivotTable
Dim Pvt2 As PivotTable
Dim pf1 As PivotField
Dim pf2 As PivotField
Dim pi1 As PivotItem
Dim pi2 As PivotItem
Dim cell As Range
Set Pvt1 = ActiveWorkbook.Worksheets("Total Bloodhound").PivotTables("PivotTable3")
Set Pvt2 = ActiveWorkbook.Worksheets("Total Closed").PivotTables("PivotTable1")
Set pf1 = Pvt1.PivotFields("time")
Set pf2 = Pvt2.PivotFields("time")
Dim index As Integer
index = 1
For Each pi1 In pf1.PivotItems
For Each pi2 In pf2.PivotItems
If IsEmpty(pi2.Value) Then Exit For
If pi1.Value = pi2.Value Then
Worksheets("Sheet1").Cells(index, "A") = pi1.Value
index = index + 1
End If
Next pi2
Next pi1
End Sub
此代码将所有日期与一个月份进行比较和复制,即使这些日期不在数据透视表中。 任何帮助都会非常感谢!
答案 0 :(得分:0)
此代码仅使用PivotItems
的{{1}}属性比较可见的DataRange
,以确定是否存在于数据透视表中
PivotItem