Excel:宏表函数----GET.DOCUMENT函数
的有关信息介绍如下:宏表函数,不能直接作用在单元格内,必须在自定义名称中使用,如果直接在单元格使用,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在工作表中使用【=刚才设置的名称】的方式调用宏表函数的返回值。介于篇幅的问题,下面的案例,我们就只讲功能指针的作用和案例用法,不再讲制作过程。
以下是针对案例一所涉及的指针功能的设置以及说明:
GET.DOCUMENT(82):如果在“页面布局”-“页面设置”的“工作表”标签中设置了【打印标题】,此指针返回标题区域(显示的R6,代表第6行);
GET.DOCUMENT(81):如果在“页面设置”的“工作表”标签中设置了【打印区域】,此指针返回打印区域的地址;
GET.DOCUMENT(77):返回设置的打印纸张的大小,一般默认是A4纸张大小,但是如果是法律、文书等特殊纸张大小的,这个功能还是很方便的。在这里也说一句,此指针一共有7个返回结果,如下。
这里我们可以使用VLOOKUP函数,对于纸张大小的返回值进行处理,使其返回对应的纸张大小,如案例中B1单元格函数改写成:
=VLOOKUP(--纸张大小,{1,"Letter 8.5x11in";2,"Letter Small8.5x11in";5,"Legal 8.5x14in";9,"A4 210x297mm";10,"A4 Small210x297mm";13,"B5 182x257mm";18,"Note 8.5x11in"},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键,复选工作表之后,可以在复选的状态下,批量调整页边距等页面设置,也可以批量打印,上面的这个方法可以大量的节省制表过程,提高效率。
个人建议
整体操作流程如下。