为Excel 2007多个工作表快速创建目录
2010-04-24 14:34:55 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佽鍨庨崘锝嗗瘱闂備胶顢婂▍鏇㈠箲閸ヮ剙鐏抽柡鍐ㄧ墕缁€鍐┿亜韫囧海顦﹀ù婊堢畺閺屻劌鈹戦崱娆忓毈缂備降鍔庣划顖炲Φ閸曨垰绠抽悗锝庝簽娴犻箖姊洪棃娑欐悙閻庢矮鍗抽悰顕€宕堕澶嬫櫖濠殿噯绲剧€笛囧箲閸ヮ剙钃熼柣鏂挎憸閻熷綊鏌涢…鎴濇灈妞ゎ剙鐗嗛—鍐Χ鎼粹€茬凹缂備緡鍠楅幐鎼佹偩閻戣棄纭€闁绘劕绉靛Λ鍐春閳ь剚銇勯幒鎴濐伀鐎规挷绀侀埞鎴︽偐閹绘帩浼€缂佹儳褰炵划娆撳蓟濞戞矮娌柟瑙勫姇椤ユ繈姊洪柅鐐茶嫰婢т即鏌熼搹顐e磳闁挎繄鍋涢埞鎴犫偓锝庘偓顓涙櫊閺屽秵娼幏灞藉帯闂佹眹鍊曢幊鎰閹惧瓨濯撮柛鎾村絻閸撳崬顪冮妶鍡楃仸闁荤啿鏅涢悾鐑藉Ψ瑜夐崑鎾绘晲鎼粹剝鐏嶉梺缁樻尰濞叉﹢濡甸崟顖氱疀闂傚牊绋愮花鑲╃磽娴h棄鐓愭慨妯稿妿濡叉劙骞樼拠鑼槰闂佸啿鎼崐濠毸囬弶搴撴斀妞ゆ梻銆嬪銉︺亜椤撶偛妲婚柣锝囧厴楠炴帡骞嬮弮鈧悗濠氭⒑鐟欏嫭鍎楅柛妯衡偓鐔插徍濠电姷鏁告慨鐑藉极閸涘﹥鍙忔い鎾卞灩绾惧鏌熼崜褏甯涢柍閿嬪灦閵囧嫰骞掗崱妞惧缂傚倷绀侀ˇ閬嶅极婵犳氨宓侀柛鈩冪⊕閸婄兘鏌涘┑鍡楊伀妞ゆ梹鍔曢埞鎴︽倻閸モ晝校闂佸憡鎸婚悷锔界┍婵犲洦鍤冮柍鍝勫暟閿涙粓姊鸿ぐ鎺戜喊闁告瑥楠搁埢鎾斥堪閸喓鍘搁柣蹇曞仧绾爼宕戦幘璇茬疀濞达絽鎲¢崐顖炴⒑绾懎浜归悶娑栧劦閸┾偓妞ゆ帒鍟惃娲煛娴e湱澧柍瑙勫灴閹瑩寮堕幋鐘辨闂備礁婀辨灙闁硅姤绮庨崚鎺楀籍閸喎浠虹紓浣割儓椤曟娊鏁冮崒娑氬幈闂佸搫娲㈤崝宀勬倶閻樼粯鐓曢柟鑸妼娴滄儳鈹戦敍鍕杭闁稿﹥鐗犲畷婵嬫晝閳ь剟鈥﹂崸妤€鐒垫い鎺嶈兌缁犲墽鈧厜鍋撳┑鐘辩窔閸嬫鈹戦纭烽練婵炲拑绲垮Σ鎰板箳閹冲磭鍠撻幏鐘绘嚑閼稿灚姣愰梻鍌氬€烽懗鑸电仚濠电偛顕崗妯侯嚕椤愩倖瀚氱€瑰壊鍠栧▓銊︾節閻㈤潧校缁炬澘绉瑰鏌ュ箵閹烘繄鍞甸柣鐘烘鐏忋劌顔忛妷褉鍋撶憴鍕碍婵☆偅绻傞~蹇涙惞閸︻厾锛滃┑鈽嗗灠閹碱偊锝炲鍥╃=濞达綁顥撻崝宥夋煙缁嬪灝鏆遍柣锝囧厴楠炲鏁冮埀顒傜不婵犳碍鍋i柛銉戝啰楠囬悗瑙勬尭缁夋挳鈥旈崘顔嘉ч柛鈩兠棄宥囩磽娴e壊鍎愰柛銊ュ缁顓兼径瀣偓閿嬨亜閹哄秶顦︾€殿喖鐏濋埞鎴﹀煡閸℃浠梺鍛婎焼閸曨収娲告俊銈忕到閸燁垶宕愰崹顐e弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�

我们经常把同类相关Excel工作表集中保存在同一文档中,以便于在各表格间进行引用、查看。当一个文档中的工作表达到一定数量时,要想找到需要的工作表就变得很麻烦了。此时若能建立一张“目录”工作表显示所有工作表的名称和链接,事情将会简单很多。
下面介绍一种可以快速为Excel工作簿创建工作表目录的方法。
定义名称
打开Excel 2007,右击第一张工作表标签选择“重命名”,把它重命名为“目录”工作表。选中B1单元格,切换到“公式”选项卡,单击“定义名称”,在弹出的“新建名称”窗口中输入名称“工作表名”,在引用位置中则输入公式=INDEX(GET.WORKBOOK(1),$A1)&T(NOW()),单击确定即可定义出一个名为“工作表名”的名称(图1)。
公式中GET.WORKBOOK(1)用于提取当前工作簿中所有工作表名称,INDEX函数则按A1中的数字决定要显示第几张工作表的名称。此外,由于宏表函数GET.WORKBOOK(1)在数据变动时不会自动重算,而NOW()是易失性函数任何变动都会强制计算,因此我们需要在公式中加上NOW()函数才能让公式自动重算。函数T()则是将NOW()产生的数值转为空文本以免影响原公式结果。
注:宏表函数GET.WORKBOOK,不能直接在单元格公式中使用,必须通过定义名称才能起作用。
目录设置
在“目录”工作表的A1单元格输入1,在B1单元格输入公式=IFERROR(HYPERLINK(工作表名&"!A1",RIGHT(工作表名,LEN(工作表名)-FIND("]",工作表名))),"")。公式表示当名称“工作表名”的值为错误值时显示为空“”,否则创建指向“工作表名!A1”的超链接并显示该“工作表名”。
然后选中A1:B1单元格,把鼠标指向选中区右下角的“填充柄”按住鼠标左键向下拖动到300行,把公式和编号填充出300行,在A、B列就会马上自动列出所有工作表目录(图2)。单击相应工作表名称即可快速切换到该工作表中。请参照可能的最多工作表个数来决定向下填充行数,一般300个应该够了。
注:公式中RIGHT(工作表名,LEN(工作表名)-FIND("]",工作表名))这段函数的作用是除去“工作表名”中“]”以前的内容。若你不介意工作表名称前显示“[BOOK1.xlsx]”一类内容的话,可以把B1中的公式简化成=IFERROR(HYPERLINK(工作表名&"!A1",工作表名),"")。
保存设置
切换到“开始”选项卡适当设置一下目录中的字体、字号和颜色等等,建议把字号放大并设置加粗以便查看,还要调整一下A:B列的列宽以便完全显示工作表名称。然后右击其他工作表标签选择“删除”,把所有其他工作表全部删除只保留一张“目录”工作表。最后单击“Office”按钮,选择“另存为”,在弹出的另存为窗口中选择保存类型为“Excel启用宏的模板(*.xltm)”格式、文件名为“目录.xltm”,保存到C:\PRogram Files\Microsoft Office\Office12\XLSTART文件夹下,关闭Excel 2007退出。若你的Office不是按默认路径安装,请按实际安装路径修改。
三秒创建目录
以后要为工作簿创建目录就简单了,只要用Excel 2007打开要创建目录的工作簿,在第一张工作表的标签上右击选择“插入”,在“插入”窗口中双击选择“目录”,即可在第一张工作表前插入一张“目录”工作表,并显示出所有工作表目录。这操作有3秒就够了吧?
在“目录”工作表中,可通过对目录进行筛选、排序、查找来快速找到工作表名,然后单击工作表名即可打开相应工作表。创建目录后,在这个工作簿中增加、删除工作表或者修改工作表名称,“目录”工作表中的工作表目录都会自动更新。此外,前面我们只复制了300行目录公式,因此工作表总数超过300个时,超出的工作表名就不会显示了,得把“目录”工作表中A1:B1的公式再向下复制填充才行。
由于宏表函数GET.WORKBOOK(1)是通过宏功能起作用的,所以插入了工作表目录的文档最后都必须以“Excel启用宏的工作簿(*.xlsm)”格式另存,这样下次打开时才能正常显示工作表目录。此外,打开工作簿时,Excel 2007默认会禁用宏,得单击警告栏中的“选项”按钮,选中“启用此内容”单选项,确定后才能显示工作表目录。
更多精彩
赞助商链接