我正在尝试使用现有数据透视表中的数据填写用户表单。 如果您看到包含的图像,则可以看到数据透视表的选择。
在“ 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,以便仅显示所选星期的预订号。
希望你们中的一个有一个想法。
答案 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
在您的情况下,这将转换为以下内容:
Intersect(pt.PivotFields("Week Number").Pivotitems(SomeVariable).DataRange.EntireRow, pt.PivotFields("Booking Number").DataRange).Select