将数据透视缓存从一个文件上的数据透视传输到另一个文件上的数据透视?

2024-03-27

我需要将 Excel 文件上的数据透视表的缓存安全地传输到另一个文件上的数据透视表中。我怎样才能做到这一点?


这是我现在使用的代码 (请注意,即使源数据透视数据源已被消除,此方法仍然有效):

Public Sub TransferPivotCache(Source As PivotTable, Target As PivotTable)
    Dim TempSheet As Worksheet
    Set TempSheet = ThisWorkbook.Sheets.Add
    Source.TableRange2.Copy Destination:=TempSheet.Range("A1")
    Target.CacheIndex = TempSheet.PivotTables(1).CacheIndex
    TempSheet.Delete
End Sub

但是,当我导入的数据透视表太大时,我在修改缓存索引属性时会收到错误“内存不足”。之后,即使文件关闭,如果我尝试重新打开它,它也会损坏。有没有更好的方法在数据透视表之间传输数据透视缓存?


如果您的目标是更新另一个针对相同数据的数据透视表,那么另一种方法是创建一个新的PivotCache指向同一个来源。这样,目标工作簿将构建相同的PivotCache无需复制DataTable,这可能是您的内存问题的原因。

Public Sub TransferPivotCache(source As PivotTable, target As PivotTable)
    Dim pivCache As PivotCache, sh As Worksheet, rgData As Range, refData

    ' convert the `SourceData` from `xlR1C1` to `xlA1` '
    source.Parent.Activate
    refData = Application.ConvertFormula(source.SourceData, xlR1C1, xlA1, xlAbsolute)
    If IsError(refData) Then refData = source.SourceData

    If Not IsError(source.Parent.Evaluate(refData)) Then
        ' create a new pivot cache from the data source if it exists '

        Set rgData = source.Parent.Evaluate(refData)
        If Not rgData.ListObject Is Nothing Then Set rgData = rgData.ListObject.Range

        Set pivCache = target.Parent.Parent.PivotCaches.Create( _
          XlPivotTableSourceType.xlDatabase, _
          rgData.Address(external:=True))

        pivCache.EnableRefresh = False
        target.ChangePivotCache pivCache
    Else
        ' copy the pivot cache since the data source no longer exists '

        Set sh = source.Parent.Parent.Sheets.Add
        source.PivotCache.CreatePivotTable sh.Cells(1, 1)
        sh.Move after:=target.Parent  ' moves the temp sheet to targeted workbook '

        ' replace the pivot cache '
        target.PivotCache.EnableRefresh = True
        target.CacheIndex = target.Parent.Next.PivotTables(1).CacheIndex
        target.PivotCache.EnableRefresh = False

        'remove the temp sheet '
        target.Parent.Next.Delete
    End If

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

将数据透视缓存从一个文件上的数据透视传输到另一个文件上的数据透视? 的相关文章

  • 空格键在 Excel VBA 编辑器中的行尾不起作用

    我将 Personal xlsb 移至新笔记本电脑 但遇到了一个奇怪的问题 空格键在行尾不起作用 除非它是完全空的行 示例 1 不起作用的示例 不工作 示例 2 工作示例 会工作 当我按空格键时 文本选择指针没有移动 但位置指示器在原始位置
  • 从html中获取属性字符串值

    我正在构建一个宏来使用从网站提取数据vba questions tagged vba 目前 我可以使用元素语法轻松地从表内容中获取值 例如obj getElementsByTagName td innerText 但是 当某些单元格中有一些
  • 有没有办法以编程方式检查 Excel 文件是否已打开

    我想检查特定的 Excel 文件是否已打开 否则 当我在 C 程序中重新打开同一文件时 它将以只读格式打开 有什么方法可以查出文件是否已经打开 如果该文件被另一个程序打开 则此代码可以帮助您找出该文件 但您将无法打开它 protected
  • Rails 4/5 发送动态 ActionMailer::Base.mail 电子邮件,附件标记为 Noname

    我看过类似的帖子 主要涉及通过创建视图和控制器来发送附件 例如 电子邮件中的 PDF 附件称为 Noname https stackoverflow com questions 12816042 pdf attachment in emai
  • 如何通过VBA刷新所有单元格

    有没有办法触发 从VBA Excel要求它重新评估所有Excel单元格 谢谢 The 计算 http msdn microsoft com en us library aa223802 28office 11 29 aspx方法可以重新计算
  • 如何在 C# 中将 excel ListObject 添加到给定工作表?

    我目前正在 C 中开发一个 Excel 插件 其中包含多种方法 表值函数 可供 Excel 用户和程序员 VBA 使用 如何编写一个方法 将新的 ListObject Excel 表 添加到给定的 Excel 工作表 并将给定的 DataT
  • 在 Objective-C (iPhone) 中从 Excel 文件读取数据 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 google 中搜索过 但似乎没有找到从 Objective C 读取 Excel 文件的方法 我找到的唯一答案是首先转换为 CSV
  • Excel Active-X 按钮无法单击

    我有一个在 Excel 中应该可以点击的按钮 当我尝试单击它时 什么也没有发生 我注意到 如果我单击并按住右下角的鼠标 则会出现第二个按钮 这种情况过去发生过 当我移动鼠标单击该按钮时 我可以单击 一切都会正常 但这一次 当我移动鼠标时 按
  • 使用 SAS 导出到 Excel

    假设我有 2 个 SAS 数据集 test1 sas 和 Test2 sas 现在我想将这2个数据集导出到Excel中 其中Excel文件Sheet1中将有test1 sas数据 Sheet2中将有test2 sas数据 怎么做 从 开始这
  • 在 C# 中更改 Excel 单元格格式

    如何使用 C 中的 Microsoft Excel 12 0 库更改 Excel 中单元格的格式 更具体地说 我想将给定单元格更改为文本格式 我读过了 net c 改变Excel单元格格式 https stackoverflow com q
  • Spark SQL / PySpark 中的逆透视

    我手头有一个问题陈述 其中我想在 Spark SQL PySpark 中取消透视表 我已经浏览了文档 我可以看到仅支持pivot 但到目前为止还不支持取消透视 有什么方法可以实现这个目标吗 让我的初始表如下所示 When I pivotPy
  • 如何让 selenium 等待页面在 Selenium - Excel VBA 包装器中完全加载?

    Selenium Excel VBA 的包装器使用什么代码或函数 以便程序将等待页面完全加载然后执行其他命令 最新版本在执行所需操作之前隐式等待目标元素存在 例如 driver FindElementById Click 默认情况下会在抛出
  • 在 EXCEL 中使用多个表的条件求和

    我有一个表 我试图根据两个参考表的值来填充该表 我有各种不同的项目 类型 1 类型 2 等 每个项目运行 4 个月 并且根据其生命周期的不同时间 花费不同的金额 这些成本计算显示在Ref Table 1 参考表1 Month a b c d
  • VBA Office2010 Shapes.PasteSpecial 失败

    我在将 VBA 代码从 Office2003 迁移到 Office2010 时遇到问题 我想将单元格 Excel 的文本复制到Powerpoint Office2003生成了一个新的文本框 文本样式与Excel中相同 现在我的代码在 Off
  • 任务执行期间在任务窗格上滚动时工作表冻结

    我们正在使用office js API 开发一个office Addin 反复出现的问题损害了我们在店里的声誉 此问题是 Excel 插件 office js 中的工作表在滚动后被冻结 我编写了一个简单的脚本实验室片段代码 它重现了工作表冻
  • 更改使用 ClosedXML 显示的工作表

    我正在使用 ClosedXML 动态创建包含多个工作表的 Excel 工作簿 生成内容后 我正在努力将所选工作表更改回工作簿中的第一个工作表 并且在文档中找不到有关如何更改显示的工作表的任何内容 我努力了 wb Worksheet 1 Se
  • VBA:删除数组项后减少循环迭代?

    在 Excel 的 VBA 中 For i 0 To UBound artMaster For j i To UBound artMaster If i lt gt j And artMaster i VDN artMaster j VDN
  • VBA:访问 JSON

    我正在处理 VBA 投影 但不确定如何访问此 JSON 中的 id 应该将 players 设置为什么才能在循环中获取 id 我已经用更多代码更新了问题 JSON event games players id 182759 Code Pri
  • 在函数上使用子例程的目的

    我已经使用 Access 一段时间了 尽管我了解 Function 相对于 Sub 的明显好处是它可以返回值 但我不确定为什么我应该使用 Sub 而不是一个函数 毕竟 除非我弄错了 函数可以做所有 Subs 可以做的事情吗 注意 我完全知道
  • oracle 数据透视表中的列

    示例选择 select from select 1 cnt 2 sm 55 name 12 month 2011 year 12 2011 mnth txt from dual union all select 1 cnt 2 sm 54

随机推荐

  • C++ 和 OpenCV:白色像素聚类算法

    我有一个二值图像 黑色和白色像素 我想根据彼此之间的距离将白色像素聚类成组 对象 并检索每个聚类的质心 这是我必须处理的示例图像 框架为紫色 我想检查聚类方法是否可以提供我正在寻找的结果 这意味着我试图避免在知道它值得之前自己实现算法 Op
  • 带有我的应用程序图标的安全中心符号盾

    我开发了一个需要管理员权限才能执行的应用程序 在 Windows 7 上运行应用程序 用户始终必须以 以管理员身份运行 启动应用程序 否则我的应用程序会提示用户 您没有管理权限等 这是可以理解的 因为 Windows 7 中有 UAC 要摆
  • 设置模拟位置时 GPS 提供商未知错误?

    我正在尝试设置我的模拟位置 但是 我收到以下错误 提供商 gps 未知 并且不确定出了什么问题 我已经获得了在manifest xml 中声明的所有权限以及所有参数 模拟定位法 Initiates the method to set the
  • 翻转 OpenGL 纹理

    当我正常从图像加载纹理时 由于 OpenGL 的坐标系统 它们是颠倒的 翻转它们的最佳方法是什么 glScalef 1 0f 1 0f 1 0f 反向映射纹理的 y 坐标 手动垂直翻转图像文件 在 Photoshop 中 加载后以编程方式翻
  • 检查元素在溢出滚动 DIV 中是否完全可见[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我已经为元
  • 简单的 schdule Nodejs 脚本在连接到远程数据库时插入记录两次

    我有一个时间表nodejs脚本 基本上 它有时间表和命令表 调度表有很多命令行 Nodejs 脚本每 5 秒检查一次调度表 如果预定时间与当前时间匹配 我将命令行 从计划表 插入到命令表中 错误是 我在笔记本电脑上运行脚本并进行测试数据库的
  • iOS:使用全屏图像构建幻灯片

    我想构建一个幻灯片 您可以在其中滑动图像 以全屏模式显示 我打算使用 UIViews 并添加手势识别器 但我想知道是否有一些已经完成的事情我可以重用 或者任何提示 我希望获得与您在 iPad 上滑动打开的应用程序时相同的效果 您可以滑动它们
  • 如何在 Python 中使用 OpenCV 跟踪运动?

    我可以使用我的网络摄像头获取帧OpenCV http opencv willowgarage com wiki 在Python中 camshift 示例接近我想要的 但我不希望人为干预来定义对象 我想获得在几帧的过程中变化的总像素的中心点
  • VS2017 在源代码中出现大量“无法解析符号”错误,但一切都构建完成

    我在 VB Net 源代码文件中收到大量 无法解析符号 错误 解决方案中的所有内容都可以毫无问题地构建 Peek Definition 和 Goto Implement 工作正常 到目前为止 我已经尝试过以下操作 进行过构建吗 清理 关闭
  • 理解 find 中转义的括号

    我已经拼凑了下面的内容 它似乎可以工作 但 空 可能是个例外 我正在学习的一件事 随着我的学习 是 仅仅因为某些东西有效 并不意味着它是正确的或正确形成的 我的问题是如何确定查找中哪些需要括号 哪些不需要命令 在 OS X 中 and 是
  • Python类装饰器扩展类导致递归

    我正在覆盖 a 的保存方法ModelForm我不知道为什么它会导致递归 parsleyfy class AccountForm forms ModelForm def save self args kwargs some other cod
  • matplotlib 中的散点图

    这是我的第一个 matplotlib 程序 很抱歉我的无知 我有两个字符串数组 说 A test1 test2 and B test3 test4 如果之间存在任何相关性A and B元素 它们的 corr 值将被设置为1 test1 te
  • ClearCase 的“MVFS 文件系统”的本质是什么?

    Clearcase 服务器中的 MVFS 有何作用 MVFS 多版本文件系统 并不是 创建 文件系统 而是让您访问一个文件系统 M 在 Windows 上 或 view 在 Unix 上 是一个安装点 允许浏览您安装的任何 Vob Clea
  • 更改 xml 节点中的值时出错

    我需要更改 xml 的多个值 但是当我运行 setText 行时 它显示 java lang NullPointerException 错误 我不明白为什么
  • 如何在MySQL中找到当前用户连接的IP地址?

    在您回答 use current user 这在很多情况下都有效 或 use user 这实际上不起作用 之前 请阅读以下内容 我正在尝试在表上创建一个视图 该视图限制用户对表中某些行的访问 并由用户连接的 IP 地址控制 我的第一次尝试是
  • React Native 如何获取“getPackageManager()”

    你知道如何在react native中访问 getPackageManager 对于java 吗 我到处搜索 但只发现 getPackageManager 的一些错误 我需要它来知道我的应用程序是否已从 Play 商店或通过其他方法下载 我
  • Android appWidget 多个实例

    这个问题几乎是重复的Android 多个appWidgets播放不同的声音 https stackoverflow com questions 4225197 android multiple appwidgets playing dife
  • cvc-elt.1:找不到元素“MyElement”的声明

    我正在尝试使用 xsd 验证一个非常简单的 xml 但由于某种原因我收到此错误 如果有人能向我解释原因 我将非常感激 XML File
  • ngx/translate - 仅翻译字符串的一部分

    我需要使用翻译来自服务器的字符串ngx 翻译 https github com ngx translate core 当我需要翻译字符串时它工作得很好 但在某些情况下我只需要翻译字符串的一部分 例如 你好谢伊 或 你好约翰 我只需要翻译 你
  • 将数据透视缓存从一个文件上的数据透视传输到另一个文件上的数据透视?

    我需要将 Excel 文件上的数据透视表的缓存安全地传输到另一个文件上的数据透视表中 我怎样才能做到这一点 这是我现在使用的代码 请注意 即使源数据透视数据源已被消除 此方法仍然有效 Public Sub TransferPivotCach