vba怎么整理代码(6明细表简化及美化)

这篇文章不单单是讲解自动排序以及筛选功能,同样的,我们不用完全知道代码的用法,而实现我们想要的功能。

来源 :

这篇文字来源于我每个月的N N预测,需要对比与上一版本的预测之间的变化,每次都要去看底稿,而且底稿非常负责,不熟悉表的找个信息非常麻烦,而且不利于汇报展示,所以做了这个自动的简表。适用于环比、同比等对比分析,也相当于是美化了一下表格,虽然还是很丑。。。

我们先来看一下效果

先看明细表如下:

vba怎么整理代码(6明细表简化及美化)(1)

明细表由7个费用科目(挑出部分,实际可能十几个甚至几十个)和21个项目组成。

再看一下简表

vba怎么整理代码(6明细表简化及美化)(2)

我们能够看到简表非常简单。在这个简表中,我们一共实现4个功能,1、下拉筛选科目;2筛选无变化的项目;3对变化值的大小进行排序;4、变化原因自动匹配。接下来我一步一步分解。


第一步:将表格变为超级表

此步骤是为了方便我们做筛选和写公式。在这步骤之前,需要将表格的公式设置好!公式我就不讲解了,网上太多了。

选中表格区域——按ctrl t——查看超级表表名

vba怎么整理代码(6明细表简化及美化)(3)

查看表名,记下来,第三步需要用

vba怎么整理代码(6明细表简化及美化)(4)


第二步:制作下拉窗口

将要下拉的元素制作一下下拉菜单,注意哈,项目和费用科目是可以调换位置的哈,就看你实际需要的是看项目的环比还是费用的环比。

vba怎么整理代码(6明细表简化及美化)(5)

此处下拉菜单后数据条没有变动,是因为我公式还没有设置好哈。


第三步:实现自动筛选

这步是用VBA代码实现的,代码如下:

Private Sub Worksheet_Change(ByVal Target As Range) Excel.Application.ScreenUpdating = False If Target.Address = "$B$3" Then '引号没填写下来筛选所在单元格,我的模板是在B3,可调整 '------------------------------------------------------------------------------ ActiveSheet.ListObjects("表5").Range.AutoFilter Field:=4 '修改表名为超级表名 ActiveSheet.ListObjects("表5").Range.AutoFilter Field:=4, Criteria1:=">0.5" _ , Operator:=xlOr, Criteria2:="<-0.5" '4为要做筛选的列在超级表的第几列,-0.5和0.5为筛选条件 '------------------------------------------------------------------------------筛选 End If Excel.Application.ScreenUpdating = True End Sub

vba怎么整理代码(6明细表简化及美化)(6)

这串代码我们要放到简表所在的表中,我的表叫做【简表-分部】,放到这里后,我们不做任何操作,关闭VBE代码编辑窗口即可。我们看看演示:

vba怎么整理代码(6明细表简化及美化)(7)


第四步:排序制作

排序的方法有很多,借此机会,给大家介绍通过录制宏的方式取得我们需要,但是又不会写的代码。录制宏的代码在我们正式写的时候,多是可以改改即可使用的,所以大家录制宏还是了解一下就行,非常简单,就是电脑自动记住我们操作的步骤,下次要用直接拿出来即可重复操作我们之前的操作。

演示:

vba怎么整理代码(6明细表简化及美化)(8)

排序代码我们摘出来看看

With ActiveWorkbook.Worksheets("简表-分部").ListObjects("表5").Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With

其实我们由此也看的只需要改一下表名即可!

vba怎么整理代码(6明细表简化及美化)(9)

至此,我们的自动筛选 自动排序功能做好的简表已经完成啦!

最后提一嘴也是很重要的!!!

保存的时候需要文件另存为启用宏的工作簿【.xlsm】的文件,不然VBA代码不能保存!

这个简表有点还是很明显的,再来看看效果吧,上边的截图时间太长了。

vba怎么整理代码(6明细表简化及美化)(10)


文章还不支持发文件,不然我可以上传个源文件。。。。哎

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页