用户不想查看电子表格或数据透视表,他们希望表单选择他们想要的内容并打印报告。
我有一个包含3个组合框(提供者,年份和季度)的用户窗体。当用户选择所需的内容时,它将过滤数据透视表中的数据,以便他们可以打印报告。我没有设法用数据透视表字段填充用户窗体组合框。
我尝试将要过滤的字段放在列部分和过滤器部分中,但无法正常工作。从另一个建议中,我将想要的节放在过滤后的节中,然后将其重命名为数据透视表中的单元格,但这也不起作用。
唯一可行的方法是将它们放置在过滤区域中,然后转到“属性”中的RowSource并放置单元格的名称,但是它并没有仅显示所有列表“ All”。现在,我在“提供者和姓名”行部分,在“年,季度和值”列中。
我不知道它是否不起作用,因为可以从另一个用户窗体上的命令按钮访问该用户窗体,或者这是否是我设置数据透视表的方式。我正在使用Excel 2016。
这是我对代码的最新尝试。
Sub FillcboProviderPT()
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Set ws = ThisWorkbook.Worksheets("ComReportPT")
Set pt = ws.PivotTables("ptComReport")
Set pf = pt.PivotFields("Provider").LabelRange.Select
Dim Item As PivotItem
Dim index As Integer
index = 1
For Each Item In pf.PivotItems
Me.cboProviderPT.AddItem Item.Name
Next Item
Me.cboProviderPT.AddItem "(All)"
End Sub
Private Sub cboProviderPT_Change()
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Set ws = ThisWorkbook.Worksheets("ComReportPT")
Set pt = ws.PivotTables("ptComReport")
Set pf = pt.PivotFields("Provider").LabelRange.Select
pf.CurrentPage = Me.cboProviderPT.Value
End Sub