2012年11月26日 星期一

Excel-取得工作表名稱

在 Excel 中如果要取得某個儲存格所在的工作表之名稱,要藉助 CELL 函數。

儲存格A1:=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))

CELL("filename"):取得活頁簿的完整路徑。

例如:磁碟名稱:\資料夾名稱\[活頁簿名稱]工作表名稱

FIND("]",CELL("filename")):搜尋「]」的位置。

LEN(CELL("filename")):計算檔案完整路徑的總字元數。

利用 RIGHT 函數取得「]」右邊的全部字元,即為工作表名稱。

若參考之前的文章為例:

Excel-自動抓取前一年度工作表來計算(http://isvincent.blogspot.tw/2012/11/excel_23.html)

儲存格B1:=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))

儲存格B2:=SUM(INDIRECT(LEFT(B1,LEN(B1)-1)-1&"年!A2:A3"))

工作表中的內容會依工作表名稱(101年)所指的年度來計算前一年(100年)的資料:

 

【補充資料】

語法:CELL(info_type, [reference])

info_type 傳回
"address" 以文字形式表示 reference 中第一個儲存格的位址。
"col" Reference 中儲存格的欄名。
"color" 如果儲存格設定為會因負數而改變色彩的格式,則傳回 1;否則傳回 0 ()
"contents" 參照左上角儲存格的數值;不是公式。
"filename" 以文字形式傳回 reference 所屬文件的檔案名稱 (包含完整的路徑名稱)。如果該文件尚未存檔,則傳回空字串 ("")
"format" 對應於數值儲存格格式的文字表示形式。各種格式的文字表示列示於以下的表格中。如果儲存格為會因負數而改變色彩,則傳回的文字值的後面會帶有負號 (-)。如果儲存格被設定為將正數或任何數值放在一組括弧中的格式時,則在傳回的文字值的後面加一組 "()"
"parentheses" 如果儲存格格式設定為將正數或所有數值放在一組括弧中,傳回 1;否則傳回 0
"prefix" 文字儲存格的「標籤首碼」的文字表示形式。如果該儲存格含有靠左對齊的文字時,傳回單引號 (');如果該儲存格中含有靠右對齊的文字時,傳回雙引號 (");如果該儲存格中含有置中對齊的文字時,傳回脫字符號 (^);如果該儲存格中含有填滿對齊的文字時,傳回反斜線 (\);如果該儲存格含有其他的資料,則傳回空字串 ("")
"protect" 如果儲存格並未鎖定保護,傳回 0;如果儲存格已鎖定保護,則傳回 1
"row" 參照位址中儲存格的列號。
"type" 儲存格中資料類型的一個對應文字值。如果該儲存格是空白的,傳回「b(代表 blank),如果該儲存格含有文字常數,則傳回標籤「l(代表 label);如果該儲存格中含有其他類別的資料,則傳回「v(代表 value)
"width" 儲存格欄寬四捨五入成整數值。每個欄寬單位都等於預設字型大小的一個字元寬度。

沒有留言:

張貼留言

好康東東