0

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

数据透视表视图 - 图片

在“A”栏中我有“周数”在“B”栏中我有“预订号码”</p>

通过执行以下操作,我设法在组合框中列出了所有“周数”(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”列中的“预订号”,在用户在第一个组合框中选择的“星期数”中。

换句话说,我想过滤 Combobox no。2 以便它只显示所选周的预订号码。

希望你们中的一个人知道如何做到这一点。

4

1 回答 1

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

于 2018-07-26T18:21:54.967 回答