Excel VBA过滤前一天的数据透视表和数据透视表 - 数据透视表过滤字段

时间:2016-09-30 17:41:01

标签: excel vba excel-vba pivot-table pivot-chart

我已经在google(和这里)的各个地方进行了搜索,并尝试了各种来源的各种代码组合,包括此网站,Excelguru,excelexperts,ozgrid,dedicatedatedex,excelcampus,spreadsheetguru等等....等等......

这是我的问题,每一点代码,每一个改动,每种类型,都不起作用。我在我的工作现场使用Office 360​​(最新版),因此它擅长2016和VBA 7.1。

我要做的是自动化我们的班次结束报告。这是过程:

我们每小时将数据输入excel表(Log)。在一天结束时,在凌晨5点,我们保存并关闭该日志,打开另一个将数据导入power pivot的excel表,并将其显示在数据透视表上(格式化我们的老板打印),我们选择使用过滤器下拉列表的上一个日期的过滤器,然后打印它。我们使用三(3)个报告执行此操作:2个数据透视表和1个数据透视图。 Power Pivot从日志表中导入所有数据以重新格式化以进行打印。

我已成功设法获取并重写代码(初学者)以实现以下自动化过程:自动保存日志,关闭日志,打开报告工作簿,刷新数据和打印数据,然后关闭报告。我现在唯一缺少的部分是自动过滤。

我试过的代码很多,但这是我最近尝试过的一个例子(我已经删除并重新复制了这么多代码......)< / p>

Sub Filter_PivotField()
'Description: Filter a pivot table or slicer for a specific date or period
'Source: excelcampus.com/vba/filter-pivot-table-slicer-recent-date-period

Dim sSheetName As String
Dim sPivotName As String
Dim sFieldName As String
Dim sFilterCrit As String
Dim pi As PivotFields

    'Set the variables
    sSheetName = "EOS Report"
    sPivotName = "PivotTable1"
    sFieldName = "Date"
    sFilterCrit = "xlDateYesterday"
    'sFilterCrit = ThisWorkbook.Worksheets("EOS Report").Range("O1").Value

    With ThisWorkbook.Worksheets(sSheetName).PivotTables(sPivotName).PivotFields(sFieldName)
        'Clear all filter of the pivotfield
        .ClearAllFilters

        'Loop through pivot items of the pivot field
        'Hide or filter out items that do not match the criteria
        For Each pi In .PivotFields
            If pi.Name  sFilterCrit Then
                pi.Visible = False
            End If
        Next pi

    End With

End Sub

无济于事....

当我录制一个执行手动过滤器的宏时,我得到了这个:

Sub manualfilter()
'
' manualfilter Macro
'

'
    ActiveSheet.PivotTables("PivotTable1").PivotFields( _
        "[Bi-Hourly Report].[Date].[Date]").VisibleItemsList = Array( _
        "[Bi-Hourly Report].[Date].&[2016-09-28T00:00:00]")
End Sub

但是当我尝试重新运行我刚录制的相同宏(更改日期之后)时,它失败了。我已经启用并禁用了多个选择选项等等...每个提示我都找到了...... nada ......

更不用说,试图自动过滤图表是一场噩梦,因为表格,是的还有很多文章,但图表?没有多少研究......

这里是过滤器按钮的图像,因为我所研究的几乎所有内容都是对表的COLUMN进行排序,而不是使用数据透视表对过滤器本身进行排序。

Table Filter

Chart Filter

对此事的任何帮助将不胜感激!我不能发布实际的excel电子表格,因为它们是公司的专有财产,但如果需要,我可以使用虚假数据复制格式......我已经在这里工作了将近一个月......

提前致谢!

1 个答案:

答案 0 :(得分:2)

检查一下。

'