将数据透视表数据导入用户窗体VBA

时间:2018-07-26 11:48:30

标签: vba pivot-table user-forums

我正在尝试使用现有数据透视表中的数据填写用户表单。 如果您看到包含的图像,则可以看到数据透视表的选择。

Pivot table view - Picture

在“ A”列中,我有“周号”,在“ B”列中,我有“预订号”

通过执行以下操作,我设法在组合框中列出了所有“周数”(A)。

Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables(1)

SendMailWindow.ComboBox_booking.Clear

pt.PivotSelect Name:="Uge nr.[All]", Mode:=xlLabelOnly, UseStandardName:=True
For Each c In Selection
If c <> "" Then
   SendMailWindow.ComboBox_Uge.AddItem c.Value
End If
Next c

我现在的问题是,我想要另一个组合框仅显示“ B”列中的“预订号”,而用户在第一个组合框中选择的是“周号”。

换句话说,我想过滤组合框编号。 2,以便仅显示所选星期的预订号。

希望你们中的一个有一个想法。

1 个答案:

答案 0 :(得分:0)

如果将“数据透视表”布局更改为“表格”(或制作了“数据透视表”的副本,并更改​​了副本的布局),这将更加简单。然后,您可以简单地在https://peltiertech.com/referencing-pivot-table-ranges-in-vba/

使用语法类型

在乔恩(Jon)的示例中,他这样做: Intersect(pt.PivotFields("Years").Pivotitems("2004").DataRange.EntireRow, pt.PivotFields("Order Date").DataRange).Select

enter image description here

在您的情况下,这将转换为以下内容: Intersect(pt.PivotFields("Week Number").Pivotitems(SomeVariable).DataRange.EntireRow, pt.PivotFields("Booking Number").DataRange).Select