excel - 如何使用 VBA 从它的第一个行字段中获取实际的可透视数据
问题描述
感谢您过去的所有帮助。我再次陷入困境,经过多次尝试后我无法解决它,再次需要您的帮助。
我想提取应用所有过滤器后显示在数据透视表中的第一个行字段的值。下面的代码提供了第一个行字段的所有值,即使数据透视表中只显示了 5 个值。
在此处查看屏幕截图:
如上图所示,我只想要 7、41、60、61、62 值,但是循环正在为源数据的所有 80 个 SN.NO 运行。
Sub GetRowItems()
Dim pi As PivotItem
Dim val As String
'Set variables
ThisWorkbook.Worksheets("Report").Activate
Set pt = ActiveSheet.PivotTables(1)
Set pf = pt.RowFields(1)
'pt.PivotFields(pf.Name).DataRange.Select
If pf Is Nothing Then Exit Sub
For j = 1 To pf.PivotItems.count
'MsgBox pf.PivotItems(j).Name
val = pf.PivotItems(j).Name
Next j
End Sub
解决方案
Sub GetRowItems()
ThisWorkbook.Worksheets("Report").Activate
Set pt = ActiveSheet.PivotTables(1)
Set pf = pt.TableRange1.Columns(1)
If pf Is Nothing Then Exit Sub
pf.Select
For Each cell In Selection.Range(Cells(2, 1), Cells(Selection.Rows.Count - 1, 1))
'Because you have Grand Totals for rows <Selection.Rows.Count - 1>
'Else <Selection.Rows.Count>
Debug.Print cell
Next
End Sub
推荐阅读
- javascript - 防止组件在上下文更改时重新加载 (React)
- java - 如何在 android studio 中的同一活动上显示两个 Admob Native 广告
- azure-devops - Azure devops 中是否有任何特定的代码审查权限?
- python - 如何确定导入当前模块的 Python 模块的路径(如果有)?
- networkx - 将 Networkx 中生成的 3D 图形保存为 VTK 格式,以便在 Paraview 中查看
- python - Python Selenium Chrome 默认目录
- python - 使用 Selenium Webdriver 和 Python 的系统之间存在 NoSuchElementException 的运行时差异
- javascript - 按类淡化元素的背景图像(vanilla JS)
- ansible - 检查其中一个文件是否存在于 ansible 中
- c# - 如何处理 winform 列表视图单击和双击事件?