如何获取数据透视表的 ListObject 对象?

2024-05-30

这个问题最初是作为answer https://stackoverflow.com/a/21321664/2712565作者:休·西格雷夫斯(Hugh Seagraves)关于相关问题的文章。他“想要引用一个工作表上的列表对象(表格),而另一工作表上的数据透视表引用该列表对象”,并且确实有一个相当好的答案,但询问是否有更直接的方式。我试图补充他的答案,但其他人认为这正在改变他答案的目的。

他的理由是,“由于列表对象是 Worksheets 集合的一部分,因此您必须知道列表对象所在工作表的名称才能引用它。”他提供了一些代码,如果您尚未创建数据透视表,这些代码将输出表的名称 (ListObject)。但我认为有一些通用代码来获取列表对象任何创建的数据透视表的对象,给定数据透视表 name.


数据透视表从数据透视缓存中获取数据。因此,您只需使用 PivotCache.SourceData 属性来查询 ListObject 名称即可。

例如,如果我基于 ListObject 构建数据透视表,那么如果我在数据透视表中选择一个单元格,那么我可以使用以下命令:

? activecell.PivotTable.PivotCache.SourceData
Table1

鉴于表名称在工作簿中是唯一的,并且也是命名范围,那么要设置对实际 ListObject 的引用,您只需使用如下所示的内容:

Set lo = Range(ActiveSheet.PivotTables("SomePivotTable").PivotCache.S‌​ourceData).ListObjec‌​t

知道了这一点,我们可以编写一个接受数据透视表对象并返回包含数据透视表数据源的 ListObject 的函数,如下所示:

Public Function GetListObjectForPT(pt As PivotTable) As ListObject
On Error Resume Next ' In case the Pivot isn't created from a ListObject
Set GetListObjectForPT = Range(pt.PivotCache.SourceData).ListObject
End Function

...你可以这样使用它:

Sub Macro1()
Dim pt As PivotTable
Dim lo As ListObject

Set pt = Worksheets("SomeWorksheetName").PivotTables("SomePivotTableName")
Set lo = GetListObjectForPT(pt)

End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取数据透视表的 ListObject 对象? 的相关文章

  • 数据透视表、页面过滤器 - 使用日期过滤

    我正在尝试过滤具有日期值的页面过滤器 但我在使用时不断出现错误 PivotFilters Add type xlBefore value 5 1 2015 我还尝试了下面的代码 Dim nd As Long nd CLng Date 90
  • 使用 VBA 在 Excel 工作表中添加验证列表时出现问题

    我有一个 Excel 工作表 其中加载了动态数据结果集 加载所有数据后 我需要在每行末尾添加 是 否 下拉列表 我必须动态地执行此操作 因为我事先不知道结果集的大小 以下代码抛出 应用程序定义或对象定义的错误 Dim firstRow As
  • Excel VBA 日期格式

    我有一个包含多个日期的电子表格 这些通常出现在mm dd yyyy or mm dd yyyy hh mm 问题是日期并不总是正确输入 我想进行检查以确保它们是代码中的日期 我最初的想法是使用IsDate检查或CDate但这似乎不起作用 它
  • 对通过 VBA 导入/链接的表禁用安全警告

    如何阻止通过导入表弹出此窗口DoCmd TransferSpreadsheet 我正在导入相当多的表 因此必须在弹出窗口中为每个表单击 打开 这很烦人 我试过了DoCmd SetWarnings False但这似乎不起作用 我知道也可以设置
  • 刷新电量查询VBA

    因此 我使用下面的代码来刷新我的查询连接 但是 如果由于 wtv 原因刷新失败 如何显示消息 因为此 VBA 显示刷新已完成 即使我的查询存在多个错误 Worksheets Details Unprotect Dim Connection
  • 在 Excel VBA 中,如何保存/恢复用户定义的过滤器?

    如何使用 VBA 保存并重新应用当前过滤器 在 Excel 2007 VBA 中 我试图 保存用户在当前工作表上拥有的任何过滤器 清除过滤器 做东西 重新应用保存的过滤器 看一下捕获自动筛选状态 http www mrexcel com f
  • 使用VBA在网页中填写用户名和密码

    这是我第一次尝试通过 VBA 浏览 IE 浏览器 我在尝试着 转到此网页https hb2 bankleumi co il e Login html https hb2 bankleumi co il e Login html 填写用户名
  • Office Excel 2007 VBA 版本 7 的免费教程网站 [已关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 什么是FREEOffice 2007 VBA 版本 7 的网站 谷歌通过大量付费垃圾邮件让我们失望 其中有 最好的最好的 教程 我有 C NET Ob
  • EXCEL 索引通过多个条件和多个匹配类型进行匹配?

    所以我确信我只是语法错误 但情况是这样的 我的 Sheet2 有 3 列 point name x y 我有 Sheet3 其中包含 5 列的区域列表 area name x start x end y start y end 我试图将每个
  • 在 VBScript 中的 SQL 字符串中使用 Excel 命名范围

    我已经在这里和谷歌上搜索过 但仍然无法解决我的问题 我正在尝试在我的中等效地使用 Excel 的命名范围 vbs文件 下面的代码可以在 excel 中的 VBA 中运行 但我无法让它在 vbs file ThisWorkbook Sheet
  • 切换发件人收件箱

    我目前使用的代码可以生成带有某些字段 例如 收件人 抄送 密件抄送 的电子邮件 但我不确定如何自动切换电子邮件的 发件人 部分 Ie my email is here but I want to automatically switch t
  • VBA:或操作员不执行[重复]

    这个问题在这里已经有答案了 我试图在 VBA 中使用 OR 运算符 但编译时出现错误 我已经在线检查了语法 并且我确信我使用正确 例如 如果我做这样的事情 If CStr Worksheets MINUTES Cells x 2 A1 2
  • 为什么即使代码运行良好,VBA 也会显示“(未响应)”?

    我在许多不同的 VBA 程序中都遇到过这个问题 所以我想我可能在 Excel 或 VBA 编辑器中设置了一些不正确的设置 老实说 在网上搜索了很多之后我还是一无所知 基本上 我将运行一段正常的代码 并且应用程序 Excel 和 VBA 编辑
  • 如何提取字符串中的一段字符串

    我有一个日志 我想从中提取 name 之后的任何内容 日志看起来像这样 BC WVM FAIL Rend wrong size for BCID 4608603 rend id 4608621 expected sz 220459951 a
  • Apache POI:包含图表的克隆工作表

    根据众多消息来源 例如官方页面上的限制部分 http poi apache org spreadsheet limitations html 可能从 POI 处理 Excel 图表的唯一好方法是使用 Excel 文件和现有图表作为模板 并修
  • Xpath 适用于“MSXML2.DOMDocument”,但不适用于“MSXML2.DOMDocument60”[重复]

    这个问题在这里已经有答案了 可能的重复 XmlDocument 中的字符串大于 小于和等于比较 https stackoverflow com questions 4466494 string greater less and equal
  • 如何使用vba解析XML

    我在 VBA 中工作 想要解析一个字符串 例如
  • 在 Excel VBA 中选择工作表范围

    我正在尝试在 Excel 宏中选择一系列工作表 以便可以打印它们 我想打印一个范围 即 Sheet2 Sheetx 其中 x 是一个变量 我尝试记录一个宏来执行我想要的操作 但它使用工作表名称而不是工作表引用 当然也不支持变量 在此示例中
  • 从 VBA 打开工作簿并禁用 Workbook_Open() 代码?

    我正在使用 VBA 打开电子表格 并且一些工作簿包含在调用 Workbook Open 时开始执行的代码 如何使用 VBA 打开工作簿但停止代码自动执行 我只是打开工作簿来查看工作表中的公式 我不想执行任何代码 你想试一下吗禁用在 VBA
  • 像 MS Excel 一样在 C++ 中舍入双精度值

    我在网上进行了搜索 但找不到解决我的问题的方法 我只是想要一个像 MS Excel 那样对双精度值进行舍入的函数 这是我的代码 include

随机推荐

  • Qmake 不支持源目录下的构建目录

    我创建了一个可以在 OS X 上编译和运行的应用程序 我现在想开始让它在 Windows 上运行 首先 我将项目复制到 Windows 机器上并尝试编译 但收到此错误 警告 Qmake不支持源目录下的构建目录 有任何想法吗 将影子构建目录设
  • Git 分支之间未跟踪的文件

    我一直在这里寻找答案 看来我可能只是对 git 分支应该如何工作做出了错误的假设 我有我的master分支 我创建了一个名为的功能分支profiles我正在对个人资料进行一些特定的工作 在处理配置文件时 我更改了 5 或 6 个文件 并添加
  • 线程和迭代次数如何影响测试以及 JMeter 的最大值是多少。线程限制

    您能告诉我最大限制吗 我可以在 JMeter 2 4 中使用哪些线程来进行负载测试 在单个循环中采用所有线程或采用更少的线程有什么区别吗 线程数和初始化循环以实现相同的数量 用户 线程 Example No of threads 500 R
  • 为什么Volley的onResponse没有被调用

    我正在通过 Volley 获取 json 数据 我遇到的问题 那是凌空的onResponse从未被调用 因此不会解析和显示数据 JSON 数据示例 title This is a sample text title title cat or
  • Rails 中的会话、子域和 authlogic 问题

    我有一个带有 authlogic 身份验证的 Rails 应用程序和一个使用 subdomain fu 构建的 username domain com 结构 但是当从domain com转到username domain com时 我的会话
  • SQL 更新数据集中的位置

    id1 id2 bool 1 1 F 1 2 F 2 1 F UPDATE table name SET bool T WHERE id1 id2 IN 1 1 2 1 Need work here 所以基本上我想选择条件为 id1 id2
  • 使用 sed 将反斜杠替换为斜杠[重复]

    这个问题在这里已经有答案了 我需要更换 with 我有一个文件 其中包含 test test2 test3 test4 I tried VRS Ruta cat ruta lst sed s g sed s g output test te
  • jQuery数据表设置列设计和成功回调中的值

    我为我的数据表编写了以下代码 它用我的数据库中的内容填充表 如下所示 if datatable null datatable destroy datatable tableProducts DataTable pageLength 50 b
  • Asp.net 开源项目作为 C# 的学习源 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 c 中的开源 asp net 最好是 net 2 0 项目 无论是某种商店 CMS 还是其他任何东西 都没有关系 重要的是项目
  • Python获取正确时区的当前时间[重复]

    这个问题在这里已经有答案了 现在我用 import datetime print datetime datetime now strftime X 将当前时间显示为字符串 问题是 我的计算机正在运行Europe Berlin时区 这里不考虑
  • SMTP:无法连接套接字:无法找到套接字传输“ssl”

    我一直在尝试在 WAMP 上使用 Pear 发送电子邮件通过 GMail 花了几个小时将其全部设置并找出我遇到的所有错误后 我以为我已经很接近了 直到我开始收到此错误 Failed to connect to ssl smtp gmail
  • 如何使用对 Azure 表存储的单个查询检索多种类型的实体?

    我试图了解 Azure 表存储如何创建 facebook 风格的提要 但我陷入了如何检索条目的困境 我的问题几乎和https stackoverflow com questions 6843689 retrieve multiple typ
  • 如何使用 SwiftUI 拖动工作滑块

    我想拖动一个滑块 当然也让它滑动 我可以做其中之一 但我不能两者都做 如何拖动并拥有可用的滑块 我也尝试找到一种方法来删除手势 但我找不到方法来做到这一点 还尝试了 Apple Composition SwiftUI Gestures 文档
  • 设计重定向到成功登录似乎在第一次登录尝试时卡住

    我正在使用 Ruby on Rails 开发一个小型应用程序 并使用 Devise 进行身份验证 我有两个登录系统设置 一个是user另一个是employee 当使用正确的电子邮件和密码登录时 设计会发送正确的重定向到返回路径 但它会卡在那
  • 基于数组对列表进行排序

    我正在尝试根据字符串数组对自定义列表进行排序 但我失败得很惨 例如它根本没有对列表进行排序 Public class CrateOrder public int Id get set public string Name get set p
  • 如何在重新加载或向后/向前重定向时保存 React 页面的状态?

    下面是我的代码 我正在使用 API 并获取当前页面上的一些数据 现在 我想在重新加载页面或再次返回或前进时保存此页面的状态 在这里 我从上一页 api 获取 featureGroupID 并将其存储在全局变量 customerID 中 我知
  • Windows 中的 Python 多处理池奇怪行为

    Python 多处理池在 Linux 和 Windows 之间有不同的行为 当按工作人员数量运行方法映射时 在 Linux 中 它会在您作为参数提供的特定函数的范围内运行该进程 但在 Windows 中 每个工作进程都在父进程的范围内运行
  • 如何正确引用相同的代码作为依赖项的依赖项?

    我有一个玩具项目正在使用紫水晶游戏引擎 https github com amethyst amethyst 我正在尝试写自己的System用于收集用户输入 类似于FlyMovementSystem and ArcBallRotationS
  • 从框架中获取可调用对象

    给定框架对象 由sys getframe http docs python org library sys html sys getframe 例如 我可以获得底层的可调用对象吗 代码解释 def foo frame sys getfram
  • 如何获取数据透视表的 ListObject 对象?

    这个问题最初是作为answer https stackoverflow com a 21321664 2712565作者 休 西格雷夫斯 Hugh Seagraves 关于相关问题的文章 他 想要引用一个工作表上的列表对象 表格 而另一工作