[求助] VBA实现数据透视表筛选功能

[求助] VBA实现数据透视表筛选功能,第1张

打开要统计的数据表格

选中数据表格中任意一个有数据的单元格,把软件的注意力引过来

→插入→数据透视表→确定(软件会默认框选整个表格的数据,默认数据透视表在新的工作表中显示)

序号列是文本格式,且不重复,可以用来计数(有多少个序号,就有多少行数据),现在统计下字段1中各种数值出现的情况:

用鼠标将“序号”拖拽至右下角计数框中

→将“字段1”拖拽至“行标签”中

→结果显示:字段1取值有3、5、6、7四种情况,出现频次分别为9、4、6、11,共30个取值:

再来看看字段2与字段1取值情况:

将字段2拖拽至“列标签”,结果显示:字段2取值仅1、2两种情况,且字段1取值为3时,字段2有7个数据取值为2,2个取值为1;字段1取值为5时,字段2只有取值为2一种情况,共4个……:

返回数据表,更新部分数据,字段2部分取值改为3,

回到透视表,发现统计结果没有变化,这是不能用的。如何更新?

鼠标右击统计结果表格→刷新 结果变化

用vba实现数据透视表自动筛选:

Sub 宏1()

k = Cells(65536, 1).End(4).Row

For i = 4 To 1 Step -1

ActiveSheet.Range("$A$3:$D$" &k).AutoFilter Field:=i, Criteria1:=Cells(1, i).Text

If Columns(1).Count <2 Then

ActiveSheet.Range("$A$3:$D$" &k).AutoFilter Field:=i

End If

Next i

End Sub

VBA:Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了VBA的宏功能。

由于微软Office软件的普及,人们常见的办公软件Office软件中的Word、Excel、Access、Powerpoint都可以利用VBA使这些软件的应用更高效率,例如:通过一段VBA代码,可以实现画面的切换;可以实现复杂逻辑的统计(比如从多个表中,自动生成按合同号来跟踪生产量、入库量、销售量、库存量的统计清单)等。

掌握了VBA,可以发挥以下作用:

1.规范用户的 *** 作,控制用户的 *** 作行为;

2. *** 作界面人性化,方便用户的 *** 作;

3.多个步骤的手工 *** 作通过执行VBA代码可以迅速的实现;

4.实现一些VB无法实现的功能。

5.用VBA制做EXCEL登录系统。

6.利用VBA可以Excel内轻松开发出功能强大的自动化程序。

VBA中实现筛选一部分数据步骤如下:

1、我们打开Excel软件,选择一个区域,接下来就要筛选其中一班的数据。

2、接下来进入VBA编辑区域,我们先看一下如何选中某一行的区域。

3、另外我们还可以通过EntireColumn和EntireRow来选择行和列。

4、了解了上面的两个用法以后,我们就可以通过Range来选择一开始指定的区域了。

5、接下来我们就可以通过for each循环进行遍历选择区域查找需要的内容。

6、最后运行VBA程序我们就可以看到一班的数据都被筛选出来了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10017344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存