EXCEL-VBA创建透视表-Lala

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

LOGOEXCEL-VBA创建透视表梦央苑工作室有事没事,网查一次;有问答问,有疑解疑!写在前面前言梦央苑工作室近日写一个EXCEL表的VBA小工具,要用到EXCEL的“数据透视表”表这个功能,想走点捷径写这个程序,于是上网找如何用VBA创建“数据透视表”的文章,竟然只找到一两篇,而且不是无法运行,就是写得很业余的(运行过程中,用户如果点一下单元格,程序运行就异常那种)。不得已,自己查VBA帮助,写了一个,现在拿出来分享给有兴趣的同志们!本教程不说理论,直接以实例讲解!(注:本人写这程序用的是OFFICE2010版)基础表梦央苑工作室以下的几个实例,都以下面的这份表格数据为基础,表名称为“基础表”:公司月份员工工资奖金梦央苑1月份A10003000梦央苑1月份B15004200梦央苑1月份C12001000梦央苑2月份B20003000梦央苑2月份C29004200雷电1月份A10001000雷电1月份B15003000雷电1月份C12004200雷电2月份B20001000雷电2月份C29001000梦央苑3月份C12001000梦央苑3月份B20003000梦央苑3月份C29004200雷电3月份A10001000雷电3月份B15003000实例1:效果图梦央苑工作室每个员工、每个月的工资列表,并求出总工资。以下为结果图实例1:代码_第一部分梦央苑工作室每个员工、每个月的工资列表,并求出总工资。以下为代码PublicSubcreatePivot()DimwsAsWorksheetDimsTableNameAsStringDimobjPivotTableAsPivotTableDimobjFieldAsPivotFieldDimrDataSourceAsRangeDimrDestinationAsRange'指定基础数据区域SetrDataSource=ThisWorkbook.Worksheets(基础表).Range(A1:E16)'指定数据透视表名称(随意)sTableName=Lala'新建一个数据表,用来显示结果Setws=ThisWorkbook.Worksheets.Add'指定数据透视表的位置SetrDestination=ws.Range(A1)'创建透视表SetobjPivotTable=ws.PivotTableWizard(SourceType:=xlDatabase,SourceData:=rDataSource,TableDestination:=rDestination,TableName:=sTableName)'把“员工”项定义为行标签WithobjPivotTable.PivotFields(员工).Orientation=xlRowField.Position=1EndWith'把“月份”项定义为行标签WithobjPivotTable.PivotFields(月份).Orientation=xlColumnField.Position=1'域的位置EndWith实例1:代码_第二部分梦央苑工作室每个员工、每个月的工资列表,并求出总工资。以下为代码'把“工资”项定义为数值项WithobjPivotTable.PivotFields(工资).Orientation=xlDataField'透视项排列方向(Orientation),xlDataField:数据域、xlRowField:行域、xlColumnField:列域.Function=xlSum'域的求值模式xlSum:求和、xlCount:计数、xlAverage:平均值、xlMax:最大值、xlMin:最小值.Caption=总工资'域的名称EndWith‘打完收工,处理后事SetrDataSource=NothingSetws=NothingSetrDestination=NothingSetobjPivotTable=NothingEndSub实例2:效果图梦央苑工作室每个员工的总工资和总资金。以下为结果图实例2:代码_第一部分梦央苑工作室每个员工的总工资和总资金。以下为代码PublicSubcreatePivot()DimwsAsWorksheetDimsTableNameAsStringDimobjPivotTableAsPivotTableDimobjFieldAsPivotFieldDimrDataSourceAsRangeDimrDestinationAsRange'指定基础数据区域SetrDataSource=ThisWorkbook.Worksheets(基础表).Range(A1:E16)'指定数据透视表名称(随意)sTableName=Lala'新建一个数据表,用来显示结果Setws=ThisWorkbook.Worksheets.Add'指定数据透视表的位置SetrDestination=ws.Range(A1)'创建透视表SetobjPivotTable=ws.PivotTableWizard(SourceType:=xlDatabase,SourceData:=rDataSource,TableDestination:=rDestination,TableName:=sTableName)'把“员工”项定义为行标签WithobjPivotTable.PivotFields(员工).Orientation=xlRowField.Position=1EndWith实例2:代码_第二部分梦央苑工作室每个员工的总工资和总资金。以下为代码'把“工资”项定义为数值项WithobjPivotTable.PivotFields(工资).Orientation=xlDataField'透视项排列方向(Orientation),xlDataField:数据域、xlRowField:行域、xlColumnField:列域.Function=xlSum'域的求值模式xlSum:求和、xlCount:计数、xlAverage:平均值、xlMax:最大值、xlMin:最小值.NumberFormat=0.00_'显示格式.Caption=总工资'域的名称EndWith'把“奖金”项定义为数值项WithobjPivotTable.PivotFields(奖金).Orientation=xlDataField.Function=xlSum.NumberFormat=0.00_'显示格式.Caption=总奖金'域的名称EndWith'以下把各LTE站点的流量信息从竖列表表示,转为以行列表表示WithobjPivotTable.DataPivotField.Orientation=xlColumnField'.Position=1EndWith‘打完收工,处理后事SetrDataSource=NothingSetws=NothingSetrDestination=NothingSetobjPivotTable=NothingEndSub实例3:效果图梦央苑工作室每个员工在每间公司的总工资和总资金。以下为结果图实例2:代码_第一部分梦央苑工作室每个员工的总工资和总资金。以下为代码PublicSubcreatePivot()DimwsAsWorksheetDimsTableNameAsStringDimobjPivotTableAsPivotTableDimobjFieldAsPivotFieldDimrDataSourceAsRangeDimrDestinationAsRange'指定基础数据区域SetrDataSource=ThisWorkbook.Worksheets(基础表).Range(A1:E16)'指定数据透视表名称(随意)sTableName=Lala'新建一个数据表,用来显示结果Setws=ThisWorkbook.Worksheets.Add'指定数据透视表的位置SetrDestination=ws.Range(A1)'创建透视表SetobjPivotTable=ws.PivotTableWizard(SourceType:=xlDatabase,SourceData:=rDataSource,TableDestination:=rDestination,TableName:=sTableName)'把“公司”项定义为行标签WithobjPivotTable.PivotFields(公司).Orientation=xlRowField.Position=1EndWith实例3:代码_第二部分梦央苑工作室每个员工的总工资和总资金。以下为代码'把“员工”项定义为行标签WithobjPivotTable.PivotFields(员工).Orientation=xlRowField.Position=2EndWith'把“工资”项定义为数值项WithobjPivotTable.PivotFields(工资).Orientation=xlDataField'透视项排列方向(Orientation),xlDataField:数据域、xlRowField:行域、xlColumnField:列域.Function=xlSum'域的求值模式xlSum:求和、xlCount:计数、xlAverage:平均值、xlMax:最大值、xlMin:最小值.NumberFormat=0.00_'显示格式.Caption=总工资'域的名称EndWith'把“奖金”项定义为数值项WithobjPivotTable.PivotFields(奖金).Orientation=xlDataField.Function=xlSum.NumberFormat=0.00_'显示格式.Caption=总奖金'域的名称EndWith'以下把各LTE站点的流量信息从竖列表表示,转为以行列表表示WithobjPivotTable.DataPivotField.Orientation=xlColumnField'.Position=1EndWith‘打完收工,处理后事SetrDataSource=NothingSetws=NothingSetrDestination=NothingSetobjPivotTable=NothingEndSubLOGO作者:植拉民梦央苑工作室LOGO如果您觉得教程对您有用,可以扫扫捐赠,以资鼓励哦。

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功