vba - 将数据透视表数据获取到用户窗体 VBA
问题描述
我正在尝试使用现有数据透视表中的数据填写用户表单。如果您看到包含的图像,您可以看到数据透视表的选择。
在“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 以便它只显示所选周的预订号码。
希望你们中的一个人知道如何做到这一点。
解决方案
如果您将数据透视表布局更改为表格(或制作数据透视表的副本,并更改副本的布局),这会简单得多。然后您可以简单地使用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
推荐阅读
- javascript - w 和 h 必须是数字
- windows - 使用提升的权限开始处理另一个 powershell.exe
- prometheus - 仅测量 Prometheus 的 increase() 函数的积极变化
- uml - 类图和类模型一样吗?
- java - 使用 iText 5 的奇怪显示问题
- linux - Ubuntu Shell 脚本打开两个表并使用一个 shell 脚本运行两个命令
- android - 作为资源添加的字体在某些设备中不起作用
- mysql - MySQL 查询在多列上使用 DISTINCT 并按日期排序(最后一个时间戳)
- java - Wildfly/Hibernate 查询结果无法返回持久化实体
- php - Facebook API 库销毁会话/cookie 数据