1. 程式人生 > >Excel單元格中引用當前工作表名稱

Excel單元格中引用當前工作表名稱

有多份Excel表格表頭標題都為“××學校第1次拉練考試××班成績表”,由於工作表結構都是一樣的,所以我每次都是複製工作表然後編輯修改表中的資料。但經常是表中資料修改了,表頭標題中的“第1次”忘記修改,造成表頭標題與表中內容矛盾的尷尬。

後來我發現,其實每個工作表的名稱都是以“第×次”命名的,如果我們能夠在標題中直接引用當前工作表名稱,那麼我就用不著每次都要修改標題了。

那麼,如何引用當前工作表的名稱呢?咱們先說實現過程吧,其實挺簡單的。

點選Excel 2007功能區“公式”選項卡“定義的名稱”功能組中“定義名稱”按鈕,開啟“新建名稱”對話方塊,在“名稱”右側的輸入框中輸入“工作表名稱”,然後在下方的“引用位置”右側的輸入框中輸入公式“=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))”,點選確定關閉此對話方塊。

現在,我們只要在工作表的空白單元格中輸入公式“=工作表名稱”,回車後就可以得到當前工作表的名稱了。那剩下的事不就好辦了嗎?

在需要輸入標題的單元格中輸入公式“="××學校"&工作表名稱&"拉練考試××班成績表"”,回車,這樣,就可以得到完整的標題了。以後,在此工作簿中複製此工作表,只要修改了工作表了名稱,那麼表頭的標題也就會隨之自動改變了。很方便吧?

現在,咱再來簡單地解釋一下公式中所用到的幾個函式吧。

CELL("filename"):可以得到當前工作表的檔名(包括全部路徑),比如本例的結果是“D:/My Documents/[拉練考試成績.xls]第2次”。

LEN()函式的語法規則為“LEN(TEXT)”,它可以得到TEXT字串的長度,包括空格在內。本例中LEN(CELL("filename"))的結果是“31”。也就是說CELL("filename")所得結果中共有31個字元。

公式中FIND("]",CELL("filename"))將返回的是在CELL("filename")的結果中查詢字元“]”所在的位置。本例中該結果為“28”。就是說,字元“]”在CELL("filename")的結果中是第28個字元。而這個字元的右側正是我們所需要的工作表名稱。

而RIGHT函式,是可以返回根據所指定的字元數返回文字字串中最後一個或多個字元。本例公式執行的結果其實是“=RIGHT("D:/My Documents/[拉練考試成績.xls]第2次",31-28)”那就是說從字串“D:/My Documents/[拉練考試成績.xls]第2次”右側擷取後3個字元,所得結果正是“第2次”。

為了在使用的時候比較方便,我們為此公式定義了名稱“工作表名稱”。

好了,現在問題解決了。如果您也會遇到類似的問題,那麼以上方法不妨一試。