excel宏表函數(shù)技巧:如何批量建立分表?

編按:哈嘍,大家好!今天我們分享兩個(gè)宏表函數(shù)新用法:直觀顯示出打印信息確保按需打印、根據(jù)總表批量建立分表。宏表函數(shù)是看不見(jiàn)的函數(shù),能實(shí)現(xiàn)一些工作表函數(shù)不能實(shí)現(xiàn)的功能。趕緊來(lái)看看吧~學(xué)習(xí)更多技巧,請(qǐng)收藏關(guān)注部落窩教育excel圖文教程。
【前言,有關(guān)“宏表函數(shù)”的幾點(diǎn)信息】
●在EXCEL的世界里,有一組特殊的函數(shù)存在,它不是EXCEL內(nèi)置工作表函數(shù),所以在功能區(qū)中使用“插入函數(shù)”時(shí),是看不見(jiàn)它的;
●因?yàn)榭床灰?jiàn),所以此類(lèi)函數(shù)不能直接應(yīng)用到單元格中;
●雖然看不見(jiàn),但是它卻可以實(shí)現(xiàn)一些工作表函數(shù)不能實(shí)現(xiàn)的功能;
●甚至在不會(huì)使用VBA的情況下,它實(shí)現(xiàn)了一些VBA的功能;
●在使用這類(lèi)函數(shù)的時(shí)候,一定要設(shè)置“宏安全性”才能夠被使用;
●這類(lèi)函數(shù)是VBA的前身,所以我們叫這類(lèi)函數(shù)為“宏表函數(shù)”??!
【什么是宏表函數(shù)】
我們今天之所以來(lái)講解“宏表函數(shù)”,是因?yàn)樗哪承┕δ苁枪ぷ鞅砗瘮?shù)所不能實(shí)現(xiàn)的,在某些數(shù)據(jù)環(huán)境中,宏表函數(shù)可以給我們解決一些關(guān)鍵的問(wèn)題。
那什么是宏表函數(shù)呢?在EXCEL的發(fā)展歷程中,因?yàn)槠溟_(kāi)發(fā)的宗旨就是要實(shí)現(xiàn)“辦公自動(dòng)化”,在20世紀(jì)90年代就在WINDOWS 3.0階段,推出了EXCEL4.0宏表,這種宏表功能可以作用于EXCEL97-2003版本中。
由于微軟開(kāi)發(fā)更新的速度相當(dāng)快(往往3年就會(huì)更新OFFICE版本),所以更多的XLM宏技術(shù)被引入到VBA中,所以在如今普遍學(xué)習(xí)EXCEL(OFFICE)的大趨勢(shì)下,XLM宏表(EXCEL4.0宏)還沒(méi)有被更多的人所熟悉,就被VBA所取代了。

而且VBA有著更加完善和方便的對(duì)象引用,也使得EXCEL4.0宏很少被問(wèn)津??墒俏④泤s在歷代EXCEL版本中都保留了對(duì)EXCEL4.0的兼容性,所以我們現(xiàn)在依然可以在每一個(gè)高級(jí)版本中使用它,不得不說(shuō),有的時(shí)候,“宏表函數(shù)”在某些數(shù)據(jù)環(huán)境下有著不可忽視的作用,甚至更加方便與簡(jiǎn)單。
如果我們使用了EXCEL4.0宏表函數(shù),就一定要像對(duì)待VBA一樣,設(shè)置“宏安全性”,才可以正常地使用它。設(shè)置如下:

如果使用了宏表函數(shù),在保存之前,EXCEL也會(huì)提示是否保存在“啟用宏的工作薄”。

【學(xué)習(xí)使用宏表函數(shù)】
正文之前再說(shuō)一遍:宏表函數(shù),不能直接作用在單元格內(nèi),必須在自定義名稱(chēng)中使用,如果直接在單元格使用,EXCEL將不識(shí)別(工作表中輸入的是工作表函數(shù))。

每一個(gè)宏表函數(shù),都有很多的返回功能,分別用阿拉伯?dāng)?shù)字代表功能指針,如GET.CELL(8)、GET.DOCUMENT(60),這種形式代表某一個(gè)返回值格式,可以說(shuō)宏表函數(shù)的語(yǔ)法是唯一的,但是因?yàn)椤爸羔槨辈煌?,功能也不一樣?/p>
但有一點(diǎn)需要注意,宏表函數(shù)往往都是對(duì)目標(biāo)對(duì)象的現(xiàn)有屬性的返回值,而不是去改變這些屬性,所以很多的指針功能可能對(duì)于日常工作沒(méi)有太多的意義,我們就不用把每一個(gè)都講到了,今天只對(duì)其中一種比較實(shí)用,且網(wǎng)文不多見(jiàn)的宏表函數(shù)做一些介紹吧。
【GET.DOCUMENT函數(shù)】
共有1~88個(gè)指針,舉幾個(gè)例子:
案例1:直觀的輔助打印說(shuō)明
我們經(jīng)常會(huì)打印一些報(bào)表,也常設(shè)置一些打印的參數(shù),例如標(biāo)題行,打印區(qū)域等等。但是有的時(shí)候,在打印出來(lái)之后,才發(fā)現(xiàn)有的設(shè)置沒(méi)有到位或者遺漏了,這樣就造成工作的重復(fù)和資源的浪費(fèi)。那么我們此時(shí)可以用宏表函數(shù)來(lái)創(chuàng)建一個(gè)打印信息的輔助說(shuō)明,直觀的給予打印前校對(duì)提供一些支持。如下所示:

制作方法:
STEP1:按CTRL+F3打開(kāi)“名稱(chēng)管理器”窗口,點(diǎn)擊“新建”按鈕,彈出“新建名稱(chēng)”窗口。

STEP2:在名稱(chēng)文本框中輸入【紙張大小】,在引用位置文本框中輸入宏表函數(shù)【=GET.DOCUMENT(77)&T(NOW())】,點(diǎn)擊“確定”按鈕保存設(shè)置,如圖所示。

STEP3:這個(gè)名稱(chēng)就可以像工作表函數(shù)一樣,在單元格中使用函數(shù)輸入的方式【=紙張大小】,就可以返回相對(duì)應(yīng)的內(nèi)容。
注意
一般來(lái)說(shuō),宏表函數(shù)的運(yùn)行需要CTRL+ALT+F9的操作來(lái)更新,所以我們利用NOW()函數(shù)的易失性,使其在操作單元格或者激活工作表的時(shí)候更新。再用T函數(shù)將NOW函數(shù)的數(shù)值轉(zhuǎn)換成空文本即可。之所以我們“約定俗成”的使用NOW函數(shù),是因?yàn)镹OW函數(shù)運(yùn)行時(shí)產(chǎn)生的內(nèi)存較小,其實(shí)用其他易失函數(shù)也是可以的,但會(huì)增加無(wú)用的運(yùn)算,所以同學(xué)們也都“約定俗成”好了。
宏表函數(shù)的用法,基本就是上面的這三步內(nèi)容:1創(chuàng)建名稱(chēng),2選擇宏表函數(shù)和指針,3在工作表中使用【=剛才設(shè)置的名稱(chēng)】的方式調(diào)用宏表函數(shù)的返回值。介于篇幅的問(wèn)題,下面的案例,我們就只講功能指針的作用和案例用法,不再講制作過(guò)程。學(xué)習(xí)更多技巧,請(qǐng)收藏關(guān)注部落窩教育excel圖文教程。
以下是針對(duì)案例一所涉及的指針功能的設(shè)置以及說(shuō)明:

GET.DOCUMENT(82):如果在“頁(yè)面布局”-“頁(yè)面設(shè)置”的“工作表”標(biāo)簽中設(shè)置了【打印標(biāo)題】,此指針?lè)祷貥?biāo)題區(qū)域(顯示的R6,代表第6行);


GET.DOCUMENT(81):如果在“頁(yè)面設(shè)置”的“工作表”標(biāo)簽中設(shè)置了【打印區(qū)域】,此指針?lè)祷卮蛴^(qū)域的地址;

GET.DOCUMENT(77):返回設(shè)置的打印紙張的大小,一般默認(rèn)是A4紙張大小,但是如果是法律、文書(shū)等特殊紙張大小的,這個(gè)功能還是很方便的。在這里也說(shuō)一句,此指針一共有7個(gè)返回結(jié)果,如下。
返回值
對(duì)應(yīng)紙張大小
1
Letter 8.5x11 in
2
Letter Small 8.5 x 11 in
5
Legal 8.5 x 14 in
9
A4 210 x 297 mm
10
A4 Small 210 x 297 mm
13
B5 182 x 257 mm
18
Note 8.5 x 11 in
這里我們可以使用VLOOKUP函數(shù),對(duì)于紙張大小的返回值進(jìn)行處理,使其返回對(duì)應(yīng)的紙張大小,如案例中B1單元格函數(shù)改寫(xiě)成:
=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)
紙張大小的名稱(chēng)前面加上了{(lán)--}減負(fù)函數(shù),是因?yàn)槲覀兪褂煤瓯砗瘮?shù)時(shí)候用了T(NOW()),返回值會(huì)變成文本,所以需要用減負(fù)函數(shù)再轉(zhuǎn)換成數(shù)值。

GET.DOCUMENT(50):當(dāng)前的打印設(shè)置條件下,打印的總頁(yè)數(shù)。
案例2:批量建立分表
往常的文章中,有很多都是用分表建立總表的教學(xué)。今天我們利用總表,通過(guò)宏表函數(shù)來(lái)建立分表。例如,很多公司都會(huì)在固定的時(shí)間周期內(nèi),給供應(yīng)商或者經(jīng)銷(xiāo)商發(fā)送《詢(xún)證函》,作為當(dāng)前應(yīng)收款或者應(yīng)付款的回執(zhí)憑證。如下表所示:

模板的樣式如下:

制作方法:
STEP1:創(chuàng)建模板表,涉及宏表函數(shù)如下。

GET.DOCUMENT(88):返回當(dāng)前工作薄名稱(chēng),格式為:工作簿名稱(chēng).xlsm。

GET.DOCUMENT(76):返回活動(dòng)工作表的名稱(chēng),格式為:[工作簿名稱(chēng).xlsm]工作表名稱(chēng)。
STEP2:編寫(xiě)《詢(xún)證函》模板。
然后在C4單元格輸入函數(shù)【=SUBSTITUTE(活動(dòng)表名,"["&工作薄名&"]","")】,利用SUBSTITUTE函數(shù)替換[工作簿名稱(chēng).xlsm]?的部分,得到活動(dòng)工作表的名稱(chēng);
在E10單元格中輸入函數(shù)【=VLOOKUP($C$4,目錄!B:E,2,0)】,引用對(duì)應(yīng)的金額;
在E11單元格中輸入函數(shù)【=TEXT(E10,"[dbnum2]")】,輸出大寫(xiě)金額。
E12、E13;E14、E15單元格函數(shù)同理,用法比較常規(guī),就不做解釋了。
STEP3:按照供應(yīng)商或者銷(xiāo)售商名稱(chēng)作為工作表名稱(chēng)建立分表。
STEP4:全選《模板》工作表的內(nèi)容,復(fù)制,再結(jié)合CTRL鍵,復(fù)選除《目錄》《模板》以外的工作表,按CTRL+V粘貼,完成制作,此時(shí)每一個(gè)分表就建立好了。
按住CTRL鍵,復(fù)選工作表之后,可以在復(fù)選的狀態(tài)下,批量調(diào)整頁(yè)邊距等頁(yè)面設(shè)置,也可以批量打印,上面的這個(gè)方法可以大量的節(jié)省制表過(guò)程,提高效率。

【編后語(yǔ)】
今天就給大家“扒出來(lái)”兩個(gè)宏表函數(shù)新用法的思路,宏表函數(shù)還有很多內(nèi)容,有的時(shí)候需要不同的宏表函數(shù)結(jié)合使用,或是結(jié)合工作表函數(shù)一起使用,這些都會(huì)產(chǎn)生神奇的效果,如果同學(xué)們對(duì)這類(lèi)函數(shù)的另類(lèi)效果有興趣,那就留言告訴我們,部落窩會(huì)繼續(xù)對(duì)它們“深扒”。學(xué)習(xí)更多技巧,請(qǐng)收藏關(guān)注部落窩教育excel圖文教程。
本文配套的練習(xí)課件請(qǐng)加入QQ群:1043683754下載。
****部落窩教育-excel宏表函數(shù)輔助打印設(shè)置****
原創(chuàng):E圖表述/部落窩教育(未經(jīng)同意,請(qǐng)勿轉(zhuǎn)載)
更多教程:部落窩教育(http://www.itblw.com)
微信公眾號(hào):exceljiaocheng,+v:blwjymx2
做Excel高手,快速提升工作效率,部落窩教育《一周Excel直通車(chē)》視頻和《Excel極速貫通班》直播課全心為你!
掃下方二維碼關(guān)注公眾號(hào),可隨時(shí)隨地學(xué)習(xí)

相關(guān)推薦:
打印的妙招①《5條私藏獨(dú)門(mén)絕技,10秒解決Excel計(jì)算不一致打印不全等難題》
打印的妙招②《解決常見(jiàn)的Excel打印難事兒》
打印的妙招③《做表、打印表有被表頭為難過(guò)?這8招,搞定excel所有表頭問(wèn)題》
打印的妙招④《你遇到的那些Excel打印問(wèn)題都在這兒了》