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 Workbook
    Dim ws As Worksheet
    ' 声明数据源、透视表目标起始位置、数据透视表变量
    Dim dataSource As Range
    Dim datePivot As Range
    Dim newPivot  As PivotTable
    
    '设置工作簿为当前文件
    Set wb = ThisWorkbook
    Set ws = ThisWorkbook.Worksheets("Sheet2")
    
    ' 通过A列获取最大行数
    Dim lastRow As Long
    lastRow = 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 = xlColumnField
        With .PivotFields("销售数量")
            .Orientation = xlDataField
            .Function = xlSum
        End With
    End With
      
End Sub

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

在这里插入图片描述

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

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

Sub UpdatePivotSourceData()

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

End Sub

在这里插入图片描述

3. 刷新数据透视表

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

Sub RefreshPivot
	Dim pt As PivotTable
	Dim ws As Worksheet

	Set ws = ThisWorkbook.Worksheets("Sheet2")
	' 设置要修改的数据透视表名称
    Set pt = ws.PivotTables("PivotTable123")

	' 刷新数据透视表
    pt.RefreshTable
    
End Sub

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文章SameStr(三):图3代码

“Publication Figure 3” 百度云盘链接: https://pan.baidu.com/s/15g7caZp354zIWktpnWzWhQ 提取码: 4sh7 Libraries Standard Import library(tidyverse) library(cowplot) library(scales) library(ggpubr)Special library(ggridges) library(grid) # library(Hmisc) …

国产鸿道Intewel操作系统与Codesys高实时虚拟化运动控制解决方案

随着运控行业的快速发展,实时与非实时业务的融合应用需求日益增长。例如在机器视觉处理领域,无论是在Windows还是Linux平台上,传统实时操作系统无法与非实时操作系统如Windows或Linux兼容,不能充分利用Windows或者Linux系统的生态…

CC7利用链分析

分析版本 Commons Collections 3.2.1 JDK 8u65 环境配置参考JAVA安全初探(三):CC1链全分析 分析过程 CC7,6,5都是在CC1 LazyMap利用链(引用)的基础上。 只是进入到LazyMap链的入口链不同。 CC7这个链有点绕,下面顺着分析一下利用链。 入口类是Hashtable&…

Java面试八股之MySQL索引B+树、全文索引、哈希索引

MySQL索引B树、全文索引、哈希索引 注意:B树中B不是代表二叉树(binary),而是代表平衡(balance),因为B树是从最早的平衡二叉树演化而来,但是B树不是一个二叉树。 B树的高度一般在2~…

java之循环练习题

思路分析&#xff1a; 代码&#xff1a; public static void main(String[] args) {int sum0;for (int i1;i<100;i){for (int j1;j<i;j) {sum j;}}System.out.println(sum);} 结果为&#xff1a;

量子保密通信协议原理:量子保密通信实验

纸上得来终觉浅&#xff0c;绝知此事要躬行。 在之前的文章中&#xff0c;我们对量子密钥分发协议原理、分发过程进行了详细的描述&#xff0c;今天我们实操一波。博主向大家隆重介绍一下华中师范大学量子保密通信虚拟仿真试验平台&#xff1a;量子保密通信是将量子密钥分发和一…

数字化时代下,财务共享数据分析建设之路

随着人工智能、云计算、大数据、区块链等技术&#xff0c;以及衍生出的各种产品的大发展&#xff0c;使得数字化发展的速度再一次加快&#xff0c;也让数字经济和数字化转型得到了更多人的关注和认可。 在传统经济增长逐渐放缓&#xff0c;市场竞争愈发激烈的局面下&#xff0…

3D模型进入可快速编辑时代,51建模网赋能Web3D展示!

丰富多样的Web3D展示形式&#xff0c;离不开强大的3D互动引擎作为坚实后盾。51建模网依托WebGL技术的先进力量&#xff0c;匠心打造了一款在线3D模型编辑器&#xff0c;它不仅能够迅速优化3D模型效果&#xff0c;更能够生成引人入胜的3D互动内容&#xff0c;让创意无界&#xf…

Linux 系统 CPU 100% 异常问题,能否用一个 Shell 脚本完美解决?

昨天下午突然收到运维邮件报警&#xff0c;显示数据平台服务器cpu利用率达到了98.94%&#xff0c;而且最近一段时间一直持续在70%以上&#xff0c;看起来像是硬件资源到瓶颈需要扩容了&#xff0c;但仔细思考就会发现咱们的业务系统并不是一个高并发或者CPU密集型的应用&#x…

uniapp本地打包到Android Studio生成APK文件

&#xff08;1&#xff09;安装 Android Studio 软件&#xff1b; 下载地址&#xff1a;官方下载地址&#xff0c;英文环境 安装&#xff1a;如下之外&#xff0c;其他一键 next &#xff08;2&#xff09;配置java环境&#xff1b; 下载&#xff1a;j…

第一次坐火车/高铁,如何坐?全流程讲解

第一次坐动车注意事项 第一次乘动车流程&#xff1a;进站→安检→候车厅→找检票口→过闸机→站台候车→找车厢→上车找座→下车→出站 乘车流程 一、进火车站/高铁站&#xff1a;刷购票证件原件进站 1、自助闸机刷证&#xff1a;身份证 2、人工通道&#xff1a;护照、临时…

AFT:Attention Free Transformer论文笔记

原文链接 2105.14103 (arxiv.org) 原文翻译 Abstract 我们介绍了 Attention Free Transformer (AFT)&#xff0c;这是 Transformer [1] 的有效变体&#xff0c;它消除了点积自注意力的需要。在 AFT 层&#xff0c;键key和值value首先与一组学习的位置偏差position biases相结…

九、Linux二进制安装ElasticSearch集群

目录 九、Linux二进制安装ElasticSearch集群1 下载2 安装前准备(单机&#xff0c;集群每台机器都需要配置)3 ElasticSearch单机&#xff08;7.16.2&#xff09;4 ElasticSearch集群&#xff08;8.14.2&#xff09;4.1 解压文件&#xff08;先将下载文件放到/opt下&#xff09;4…

语义言语流畅性的功能连接和有效连接

摘要 语义言语流畅性(SVF)受损在多种神经系统疾病中都存在。虽然已经报道了SVF相关区域的激活情况&#xff0c;但这些区域如何相互连接以及它们在脑网络中的功能作用仍存在分歧。本研究使用功能磁共振成像评估了健康被试SVF静态和动态功能连接(FC)以及有效连接。观察到额下回(…

js替换对象内部的对象名称或属性名称-(第一篇)

方案一&#xff1a;对于值为undefined null 的对象属性不考虑该方案 JSON.parse(JSON.stringify(data).replace(/name/g, new_name)) //data为数组&#xff0c;name为修改前&#xff0c;new_name为修改后 解释&#xff1a;1&#xff09;JSON.stringify()把json对象转成json字…

3GPP R18 Multi-USIM 是怎么回事?(三)

这篇内容相对来说都是一些死规定,比较枯燥。主要是与MUSIM feature相关的mobility and periodic registration和service request触发过程的一些规定,两部分的内容是有部分重叠的,为保证完整性,重复部分也从24.501中摘了出来。 24.501 4.25 网络和MUSIM UE可以支持MUSIM fe…

绩效管理为什么难?

几乎所有企业都知晓绩效管理的重要性&#xff0c;但许多企业陷入了把绩效考核当绩效管理的误区。绩效考核只是绩效管理过程中的一个环节&#xff0c;如果只重视“考核”这个环节&#xff0c;会极大限制员工个人和组织的成长。 绩效管理是一个动态过程&#xff0c;包括绩效目标设…

数据结构 Java DS——链表部分经典题目 (1)

前言 笔者计划在暑假啃完JavaDS,Mysql的内容当然也会继续更 这次给读者们分享的是链表的几个比较典型的题目,关于如何手搓一个链表,笔者还在筹划中, 毕竟链表的种类也有那么多,但是在下面的题目中,只有单向链表 题目一 : 反转链表 206. 反转链表 - 力扣&#xff08;LeetCode…

【国潮】软件本土化探索

文章目录 一、国产-操作系统银河麒麟&#xff08;Kylin&#xff09;操作系统华为鸿蒙系统&#xff08;HarmonyOS&#xff09;统信UOS深度Deepin 二、国产-服务器华为鲲鹏&#xff1a;飞腾&#xff1a;海光&#xff1a;兆芯&#xff1a;龙芯&#xff1a;申威&#xff1a; 三、国…

Sui DeFi现状介绍

关于Sui Network Sui是基于第一原理重新设计和构建而成的L1公有链&#xff0c;旨在为创作者和开发者提供能够承载Web3中下一个十亿用户的开发平台。Sui上的应用基于Move智能合约语言&#xff0c;并具有水平可扩展性&#xff0c;让开发者能够快速且低成本支持广泛的应用开发。获…