首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

excel宏表函数技巧:如何批量建立分表?

编按:哈喽,大家好!今天我们分享两个宏表函数新用法:直观显示出打印信息确保按需打印、根据总表批量建立分表。宏表函数是看不见的函数,能实现一些工作表函数不能实现的功能。赶紧来看看吧~学习更多技巧,请收藏关注部落窝教育excel图文教程。

【前言,有关“宏表函数”的几点信息】

●在EXCEL的世界里,有一组特殊的函数存在,它不是EXCEL内置工作表函数,所以在功能区中使用“插入函数”时,是看不见它的;

●因为看不见,所以此类函数不能直接应用到单元格中;

●虽然看不见,但是它却可以实现一些工作表函数不能实现的功能;

●甚至在不会使用VBA的情况下,它实现了一些VBA的功能;

●在使用这类函数的时候,一定要设置“宏安全性”才能够被使用;

●这类函数是VBA的前身,所以我们叫这类函数为“宏表函数”!!

【什么是宏表函数】

我们今天之所以来讲解“宏表函数”,是因为它的某些功能是工作表函数所不能实现的,在某些数据环境中,宏表函数可以给我们解决一些关键的问题。

那什么是宏表函数呢?在EXCEL的发展历程中,因为其开发的宗旨就是要实现“办公自动化”,在20世纪90年代就在WINDOWS 3.0阶段,推出了EXCEL4.0宏表,这种宏表功能可以作用于EXCEL97-2003版本中。

由于微软开发更新的速度相当快(往往3年就会更新OFFICE版本),所以更多的XLM宏技术被引入到VBA中,所以在如今普遍学习EXCEL(OFFICE)的大趋势下,XLM宏表(EXCEL4.0宏)还没有被更多的人所熟悉,就被VBA所取代了。

而且VBA有着更加完善和方便的对象引用,也使得EXCEL4.0宏很少被问津。可是微软却在历代EXCEL版本中都保留了对EXCEL4.0的兼容性,所以我们现在依然可以在每一个高级版本中使用它,不得不说,有的时候,“宏表函数”在某些数据环境下有着不可忽视的作用,甚至更加方便与简单。

如果我们使用了EXCEL4.0宏表函数,就一定要像对待VBA一样,设置“宏安全性”,才可以正常地使用它。设置如下:

如果使用了宏表函数,在保存之前,EXCEL也会提示是否保存在“启用宏的工作薄”。

【学习使用宏表函数】

正文之前再说一遍:宏表函数,不能直接作用在单元格内,必须在自定义名称中使用,如果直接在单元格使用,EXCEL将不识别(工作表中输入的是工作表函数)。

每一个宏表函数,都有很多的返回功能,分别用阿拉伯数字代表功能指针,如GET.CELL(8)、GET.DOCUMENT(60),这种形式代表某一个返回值格式,可以说宏表函数的语法是唯一的,但是因为“指针”不同,功能也不一样。

但有一点需要注意,宏表函数往往都是对目标对象的现有属性的返回值,而不是去改变这些属性,所以很多的指针功能可能对于日常工作没有太多的意义,我们就不用把每一个都讲到了,今天只对其中一种比较实用,且网文不多见的宏表函数做一些介绍吧。

【GET.DOCUMENT函数】

共有1~88个指针,举几个例子:

案例1:直观的辅助打印说明

我们经常会打印一些报表,也常设置一些打印的参数,例如标题行,打印区域等等。但是有的时候,在打印出来之后,才发现有的设置没有到位或者遗漏了,这样就造成工作的重复和资源的浪费。那么我们此时可以用宏表函数来创建一个打印信息的辅助说明,直观的给予打印前校对提供一些支持。如下所示:

制作方法:

STEP1:按CTRL+F3打开“名称管理器”窗口,点击“新建”按钮,弹出“新建名称”窗口。

STEP2:在名称文本框中输入【纸张大小】,在引用位置文本框中输入宏表函数【=GET.DOCUMENT(77)&T(NOW())】,点击“确定”按钮保存设置,如图所示。

STEP3:这个名称就可以像工作表函数一样,在单元格中使用函数输入的方式【=纸张大小】,就可以返回相对应的内容。

注意

一般来说,宏表函数的运行需要CTRL+ALT+F9的操作来更新,所以我们利用NOW()函数的易失性,使其在操作单元格或者激活工作表的时候更新。再用T函数将NOW函数的数值转换成空文本即可。之所以我们“约定俗成”的使用NOW函数,是因为NOW函数运行时产生的内存较小,其实用其他易失函数也是可以的,但会增加无用的运算,所以同学们也都“约定俗成”好了。

宏表函数的用法,基本就是上面的这三步内容:1创建名称,2选择宏表函数和指针,3在工作表中使用【=刚才设置的名称】的方式调用宏表函数的返回值。介于篇幅的问题,下面的案例,我们就只讲功能指针的作用和案例用法,不再讲制作过程。学习更多技巧,请收藏关注部落窝教育excel图文教程。

以下是针对案例一所涉及的指针功能的设置以及说明:

GET.DOCUMENT(82):如果在“页面布局”-“页面设置”的“工作表”标签中设置了【打印标题】,此指针返回标题区域(显示的R6,代表第6行);

GET.DOCUMENT(81):如果在“页面设置”的“工作表”标签中设置了【打印区域】,此指针返回打印区域的地址;

GET.DOCUMENT(77):返回设置的打印纸张的大小,一般默认是A4纸张大小,但是如果是法律、文书等特殊纸张大小的,这个功能还是很方便的。在这里也说一句,此指针一共有7个返回结果,如下。

这里我们可以使用VLOOKUP函数,对于纸张大小的返回值进行处理,使其返回对应的纸张大小,如案例中B1单元格函数改写成:

=VLOOKUP(--纸张大小,,2,0)

纸张大小的名称前面加上了{--}减负函数,是因为我们使用宏表函数时候用了T(NOW()),返回值会变成文本,所以需要用减负函数再转换成数值。

GET.DOCUMENT(50):当前的打印设置条件下,打印的总页数。

案例2:批量建立分表

往常的文章中,有很多都是用分表建立总表的教学。今天我们利用总表,通过宏表函数来建立分表。例如,很多公司都会在固定的时间周期内,给供应商或者经销商发送《询证函》,作为当前应收款或者应付款的回执凭证。如下表所示:

模板的样式如下:

制作方法:

STEP1:创建模板表,涉及宏表函数如下。

GET.DOCUMENT(88):返回当前工作薄名称,格式为:工作簿名称.xlsm。

GET.DOCUMENT(76):返回活动工作表的名称,格式为:[工作簿名称.xlsm]工作表名称。

STEP2:编写《询证函》模板。

然后在C4单元格输入函数【=SUBSTITUTE(活动表名,"["&工作薄名&"]","")】,利用SUBSTITUTE函数替换[工作簿名称.xlsm] 的部分,得到活动工作表的名称;

在E10单元格中输入函数【=VLOOKUP($C$4,目录!B:E,2,0)】,引用对应的金额;

在E11单元格中输入函数【=TEXT(E10,"[dbnum2]")】,输出大写金额。

E12、E13;E14、E15单元格函数同理,用法比较常规,就不做解释了。

STEP3:按照供应商或者销售商名称作为工作表名称建立分表。

STEP4:全选《模板》工作表的内容,复制,再结合CTRL键,复选除《目录》《模板》以外的工作表,按CTRL+V粘贴,完成制作,此时每一个分表就建立好了。

按住CTRL键,复选工作表之后,可以在复选的状态下,批量调整页边距等页面设置,也可以批量打印,上面的这个方法可以大量的节省制表过程,提高效率。

【编后语】

今天就给大家“扒出来”两个宏表函数新用法的思路,宏表函数还有很多内容,有的时候需要不同的宏表函数结合使用,或是结合工作表函数一起使用,这些都会产生神奇的效果,如果同学们对这类函数的另类效果有兴趣,那就留言告诉我们,部落窝会继续对它们“深扒”。学习更多技巧,请收藏关注部落窝教育excel图文教程。

****部落窝教育-excel宏表函数辅助打印设置****

原创:E图表述/部落窝教育(未经同意,请勿转载)

更多教程:部落窝教育

微信公众号:exceljiaocheng

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200622A0K8OR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券