VBA实现Excel的数据透视表

前言

本节会介绍通过VBA的PivotCaches.Create方法实现Excel创建新的数据透视表、修改原有的数据透视表的数据源以及刷新数据透视表内容。
本节测试内容以下表信息为例
在这里插入图片描述


1、创建数据透视表

语法:PivotCaches.Create(SourceType, [SourceData], [Version])
说明:

SourceType:必填参数,可以是以下 XlPivotTableSourceType 常量之一: xlConsolidation、 xlDatabase 或 xlExternal
SourceData:非必填,新数据透视表缓存的数据。
Version:版本,非必填,可以是常量xlPivotTableVersion2000,对应Excel 2000,也可以是xlPivotTableVersion10、xlPivotTableVersion11、xlPivotTableVersion12、xlPivotTableVersion14、xlPivotTableVersion15分别表示Excel 2002、2003、2007、2010、2013

示例:

根据上表内容,在原sheet2上创建一个数据透视表,起始位置为J1,透视表设置行为名称、产品编号,列设置为生产年月,值为销售数量求和,完整的代码如下:

Sub CreatePivot()' 声明工作簿、工作表变量Dim wb As WorkbookDim ws As Worksheet' 声明数据源、透视表目标起始位置、数据透视表变量Dim dataSource As RangeDim datePivot As RangeDim newPivot  As PivotTable'设置工作簿为当前文件Set wb = ThisWorkbookSet ws = ThisWorkbook.Worksheets("Sheet2")' 通过A列获取最大行数Dim lastRow As LonglastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row' 定义数据源范围Set dataSource = ws.Range("A1:F" & lastRow)' 定义透视表目的起始位置' 创建一个新的数据透视表Set newPivot = wb.PivotCaches.Create(xlDatabase, dataSource).CreatePivotTable(ws.Range("J1"), "PivotTable123")' 定义透视表的行列值With newPivot.PivotFields("名称").Orientation = xlRowField.PivotFields("商品编号").Orientation = xlRowField.PivotFields("生产年月").Orientation = xlColumnFieldWith .PivotFields("销售数量").Orientation = xlDataField.Function = xlSumEnd WithEnd WithEnd Sub

代码说明:
注意 PivotCaches.Create 是用在workbook后面的方法属性
CreatePivotTable 用来指定创建的透视表的位置以及透视表的名称,若想要在一张新的工作表创建,如想在sheet3中创建,则可以将上述代码中的ws.Range(“J1”)改为ThisWorkbook.Worksheets(“Sheet3”).Range(“A1”),前提是该工作簿中存在Sheet3工作表

在这里插入图片描述

2. 修改数据透视表的数据源

如上例类似,修改已有的数据透视表的数据源,修改为A1:F20,完整的代码如下:

Sub UpdatePivotSourceData()' 声明工作簿、工作表变量Dim wb As WorkbookDim ws As Worksheet' 声明数据源、透视表目标起始位置、数据透视表变量Dim dataSource As RangeDim datePivot As RangeDim pt As PivotTable'设置工作簿为当前文件Set wb = ThisWorkbookSet ws = ThisWorkbook.Worksheets("Sheet2")' 设置要修改的数据透视表名称Set pt = ws.PivotTables("PivotTable123")' 修改数据透视表的数据范围pt.sourceData = ws.Range("A1:F20").Address(True, True, xlR1C1, True)' 刷新数据透视表pt.RefreshTableEnd Sub

在这里插入图片描述

3. 刷新数据透视表

pt.RefreshTable
pt表示对应的数据透视表,如以下代码:

Sub RefreshPivotDim pt As PivotTableDim ws As WorksheetSet ws = ThisWorkbook.Worksheets("Sheet2")' 设置要修改的数据透视表名称Set pt = ws.PivotTables("PivotTable123")' 刷新数据透视表pt.RefreshTableEnd Sub

对应的数据透视表名称
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3224720.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

C语言程序题(一)

一.三个整数从大到小输出 首先做这个题目需要知道理清排序的思路,通过比较三个整数的值,使之从大到小输出。解这道题有很多方法我就总结了两种方法:一是通过中间变量比较和交换,二是可以用冒泡排序法(虽然三个数字排序…

【重大消息】报告称OpenAI的产品可经由微软的服务提供给中国客户

尽管OpenAI正在采取措施限制中国用户访问其平台,但一份最新报告称,中国用户仍可通过微软的Azure云计算平台访问该公司的产品。微软和OpenAI有着密切的合作关系,前者通过人工智能功能获得了独家产品访问权以拓展企业计算。最新的报道来自《The…

秋招突击——7/9——复习{Java实现——LRU,Java实现——搜索插入位置}——新作{二分查找——搜索二维矩阵}

文章目录 引言复习Java实现——LRU缓存对照实现 Java实现——搜索插入位置java实现知识补充 新作搜索二维矩阵个人实现参考实现 总结 引言 以后都要向使用Java刷算法进行过滤了,所以今天主要是复习为主,复习两道之前做过的题目,然后做两道新…

STM32智能交通灯控制系统教程

目录 引言环境准备智能交通灯控制系统基础代码实现:实现智能交通灯控制系统 4.1 数据采集模块 4.2 数据处理与控制算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:交通灯管理与优化问题解决方案与优化收尾与总结 1. 引言 智能交通灯控…

迅狐抖音机构号授权矩阵系统源码

在数字化营销的浪潮中,抖音以其独特的短视频形式迅速崛起,成为品牌传播和用户互动的重要平台。迅狐抖音机构号授权矩阵系统源码作为一项创新技术,为品牌在抖音上的深度运营提供了强大支持。 迅狐抖音机构号授权矩阵系统源码简介 迅狐抖音机…

Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比

章节内容 上一节完成了如下的内容: 编写Agent Conf配置文件收集Hive数据汇聚到HDFS中测试效果 背景介绍 这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。 之前已经在 VM 虚拟机上搭建过一次&#xff0…

【动态规划Ⅵ】背包问题 /// 组合问题

背包问题 什么是背包问题0-1背包问题分数背包完全背包问题重复背包问题 背包问题例题416. 分割等和子集474. 一和零 完全平方数279. 完全平方数322. 零钱兑换 排列与组合组合,无重复:518. 零钱兑换 II排列,可重复:377. 组合总和 Ⅳ…

【效率提升】多功能组织和整理软件一Notion

Notion下载地址:https://www.notion.so/desktop Notion 是一款多功能办公软件,非常适合进行知识整理、团队协作、项目整理等。 下面是几个我推荐Notion的关键点: 一、排版高度自由:Notion的页面可以嵌套,在页面中还支…

Games101——光珊化——深度缓存——shading着色 1

深度缓存 如何解决远近的问题,能正确的覆盖 按照画作来说,先画出远处的物体,再画出近处的物体,近处会将其覆盖,这种算法叫做画家算法 但事实上,排序不仅要花更多的时间,而且排序并不容易&…

apache:the requested operation has failed使用httpd -t

Apache24\bin cmd 回车 httpd -t 因为我重新压缩了,记住,重新压缩要使用原路径, 因为你安装的 时候使用的是原路径 还是不行就改个端口,切记修改配置文件httpd.conf先把Tomcat停了 Define SRVROOT "F:\Apache\Apache24&q…

“Numpy数据分析与挖掘:高效学习重点技能“

目录 # 开篇 # 补充 zeros & ones eye 1. numpy数组的创建 1.1 array 1.2 range 1.3 arange 1.4 常见的数据类型 1.5 astype 1.6 random.random() & round 2. numpy数组计算和数组计算 2.1 reshape 2.2 shape 2.3 将一维数组变成多维数组 2.4 指定一维…

生产者消费者模型和线程同步问题

文章目录 线程同步概念生产者消费者模型条件变量使用条件变量唤醒条件变量 阻塞队列 线程同步概念 互斥能保证安全,但是仅有安全不够,同步可以更高效的使用资源 生产者消费者模型 下面就基于生产者消费者来深入线程同步等概念: 如何理解生产消费者模型: 以函数调用为例: 两…

14-58 剑和诗人32 - 使用矢量数据库增强 LLM 应用程序

GPT-4、Bloom、LaMDA 等大型语言模型 (LLM) 在生成类似人类的文本方面表现出了令人印象深刻的能力。然而,它们在事实准确性和推理能力等方面仍然面临限制。这是因为,虽然它们的基础是从大量文本数据中提取统计模式,但它们缺乏结构化的知识源来为其输出提供依据。 最近,我们…

红日靶场----(三)漏洞利用

上期已经信息收集阶段已经完成,接下来是漏洞利用。 靶场思路 通过信息收集得到两个吧靶场的思路 1、http://192.168.195.33/phpmyadmin/(数据库的管理界面) root/root 2、http://192.168.195.33/yxcms/index.php?radmin/index/login&am…

(自用)gtest单元测试

gtest是Google的一套用于编写C测试的框架,可以运行在很多平台上(包括Linux、Mac OS X、Windows、Cygwin等等)。基于xUnit架构。支持很多好用的特性,包括自动识别测试、丰富的断言、断言自定义、死亡测试、非终止的失败、生成XML报…

Python | Leetcode Python题解之第225题用队列实现栈

题目: 题解: class MyStack:def __init__(self):"""Initialize your data structure here."""self.queue collections.deque()def push(self, x: int) -> None:"""Push element x onto stack."&…

14-59 剑和诗人33 - 端到端的LLMOps平台建设

​​​​ GPT-4、LlaMA、Falcon、Claude、Cohere、PaLM 等大型语言模型 (LLM) 已展示出强大的自然语言生成、推理、摘要、翻译等功能。然而,要有效利用这些模型来构建自定义应用程序,需要克服非同小可的机器学习工程挑战。 LLMOps 旨在提供一个精简的平…

从零开始学习嵌入式----C语言框架梳理与后期规划

目录 一、环境搭建. 二、见解 三、C语言框架梳理 四、嵌入式学习规划流程图(学习顺序可能有变) 一、环境搭建. C语言是一门编程语言,在学习的时候要准备好环境。我个人比较喜欢用VS,具体怎么安装请百度。学习C语言的时候,切忌…

clean code-代码整洁之道 阅读笔记(第十七章 终章)

大纲 第十七章 味道与启发 17.1 注释 C1:不恰当的信息 C2:废弃的注释 C3:冗余注释 C4:糟糕的注释 C5:注释掉的代码 17.2 环境 E1:需要多步才能实现的构建 E2:需要多步才能做到的测试 …

中科驭数HADOS 3.0:以四大架构革新,全面拥抱敏捷开发理念,引领DPU应用生态

一家成功的大算力芯片公司,其核心壁垒必须是软硬兼备的,既要有芯片架构的强大技术壁垒,更要有持久投入的、生态兼容完备的软件护城河。HADOS,就是中科驭数的软件护城河。 ——中科驭数高级副总裁 张宇 近日,在DPU基础…