2012年7月18日 星期三

EXCEL技巧─利用函數獲取工作表名


方法一
  
常規方法cell函數
  也可以這樣取得工作表名,在任一單元格輸入:
=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename ")))
方法二
  取工作表名及路徑=CELL("filename",$A$1)
取工作簿及表名
=MID(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1)),LEN(CELL("filename",$A$1) )+1-FIND("[",CELL("filename",$A$1)))
取工作簿名
=MID(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1)),FIND("]",CELL("filename",$A $1))-FIND("[",CELL("filename",$A$1))+1)
取工作表名
=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,LEN(CELL("filename",$A$1) )-FIND("]",CELL("filename",$A$1)))
方法三
定義一個名稱,簡寫為:mc,引用位置寫入"=get.cell(66)"然後在任意單元格輸入=mc,即可得到當前工作簿名稱。
定義一個名稱,簡寫為:mcb,引用位置寫入"=get.cell(62)或=get.cell(32),然後在任意單元格輸入=mcb,即可得到當前工作簿及工作表名稱。
補充A取本表表名: 
定義X=MID(GET.DOCUMENT(1),FIND("]",GET.DOCUMENT(1))+1,100) 
在各表輸入=X 補充B定義一個名稱,簡寫為:mcb,引用位置寫入"=get.cell(62)或=get.cell(32),然後在任意單元格輸入=RIGHT(mcb2,LEN(mcb2)-SEARCH("]",mcb2,1) )可以得到工作表名稱補充C定義一個名稱,簡寫為:mcb,引用位置寫入"=get.cell(62)或=get.cell(32),然後在任意單元格輸入=MID(mcb,SEARCH ("]",mcb2,1)+1,100)可以得到工作表名稱



補充D知識點1
GET.DOCUMENT宏表函數說明
語法GET.DOCUMENT(type_num, name_text) 
Type_num指明信息類型的數。下表列出type_num的可能值與對應結果。
Type_num返回
1如果工作簿中不只一張表,用文字形式以“[book1]sheet1”的格式返回工作表的文件名 ​​。否則,只返回工作簿的文件名 ​​。工作簿文件名 ​​不包括驅動器,目錄或窗口編號。通常最好使用GET. DOCUMENT(76) 
和GET. DOCUMENT(88)來返回活動工作表和活動工作簿的文件名 ​​。
2作為文字,包括name_text的目錄的路經。如果工作簿name_text未被保存,返回錯誤值#N/A 
3指明文件類型的數
   1 =工作表
   2 =圖表
   3 =宏表
   4 =活動的信息窗口
   5 =保留文件
   6 =模塊表
   7 =對話框編輯表
4如果最後一次存儲文件後表發生了變化,返回TRUE;否則,返回FALSE。
5如果表為只讀,返回TRUE;否則,返回FALSE。
6如果表設置了口令加以保護,返回TRUE;否則,返回FALSE。
7如果表中的單元格,表中的內容或圖表中的系列被保護,返回TRUE;否則,返回FALSE。
8如果工作簿窗口被保護,返回TRUE;否則,返回FALSE。
   下面四個type_num的數值只用於圖表。
   Type_num返回
9指示主圖表的類型的數。
   1 =面積圖
   2 =條形圖
   3 =柱形圖
   4 =折線形
   5 =餅形
   6 = XY (散點圖) 
   7 =三維面積圖
   8 =三維柱形圖
   9 =三維折線圖
   10 =三維餅圖
   11 =雷達圖
   12 =三維等形圖
   13 =三維曲面圖
   14 =圓環圖
10指示覆蓋圖表類型的數,同以上主圖表的1,2,3,4,5,6,11和14。沒有覆蓋圖表的情況下返回錯誤值#N/A 
11主圖表系列的數
12覆蓋圖表系列的數   下列Type_num的值用於工作表,宏表,在適當的時候用於圖表。   Type_num返回9第一個使用行的編號。如文件是空的,返回零。10最後一個使用行的偏號。如文件是空的,返回零。11第一個使用列的編號。如文件是空的,返回零。12最後一個使用列的編號。如文件是空的,返回零。13窗口的編號。14指明計算方式的數。   1 =自動生成有   2 =除表格外自動生成   3 =手動15如果在[選項]對話框的[重新計算設置]標籤下選擇[迭代]選擇框,返回TRUE;否則,返回FALSE。16迭代間的最大數值。17迭代間的最大改變18如果在[選項]對話框的[重新計算設置]標籤下選擇[更新過程引用]選擇框,返回TRUE;否則,返回FALSE。19如果在[選項]對話框的[重新計算設置]標籤下選[以顯示值為準]選擇框,返回TRUE;否則,返回FALSE。20如果在Options對話框的[重新計算設置]標籤下選擇[1904日期系統選擇框,返回TRUE;否則,返回FALSE。   Type_num是21-29之間的數,對應於Microsoft Excel先前版本的四種默認字體。提供這些值是為了宏的兼容性。   下列Type_num數值應用於工作表,宏表和指定的圖表。   Type_num返回30以文字形式返回當前表合併引用的水平數組.如果列表是空的,返回錯誤值#N/A 31 1至11之間的一個數,指明用於當前合併的函數。對應於每個數的函數列於下面CONSOLIDATE函數中,默認函數為SUM32三項水平數組,用於指明Data Consolidate對話框中選擇框的狀態。如果此項為TRUE,選擇選擇框. 如果此項為FALSE,清除選擇框.第一項指明[頂端行]選擇框,第二項指[最左列]選擇框,第三項指[與源數據鏈接]選擇框。33如果選擇了[選項]對話框的[重新計算設置]標籤下的[保存前重新計算]選擇框,返回TRUE;否則,返回FALSE。34如工作簿定義為只讀,返回TRUE;否則,返回FALSE。35工作簿為寫保護,返回TRUE;否則,返回FALSE。36如文件設置了寫保護口令,並以可讀/可寫方式打開,返回最初使用寫保護口令存文件的用戶的名字。如文件以只讀形式打開,或文件未設置口令,返回當前用戶的名字。37對應於顯示在[另存為]對話框中的文檔的文件類型。所有Microsoft Excel可識別的文件類型列於SAVE.AS函數中。38如選擇了[分級顯示]對話框中的[明細數據的下方選擇框,返回TRUE;否則,返回FALSE。39如果選擇了[分級顯示]對話框中的[明細數據的右側]選擇框,返回TRUE;否則,返回FALSE。40如果選擇了[另存為]對話框中的[建立備份文件]選擇框,返回TRUE;否則,返回FALSE。41 1至3中的一個數字,指明是否顯示對象:    1 =顯示所有對象    2 =圖和表的位置標誌符    3 =所有對像被隱藏42包括表中所有對象的水平數組,如無對象,返回錯誤值#N/A 43如果在[選項]對話框的[重新計算設置]標籤下選擇了[保存外部鏈接值]選擇框,返回TRUE;否則,返回FALSE。44如文件中的對像被保護,返回TRUE;否則,返回FALSE。45 0至3中的一個數,指明窗口同步化方式。0 =不同步1 =水平方向上同步2 =垂直方向上同步3 =水平方向,垂直方向上均同步46七項水平數組,用於打印設置,可由LINE. PRINT宏函數完成。-建立文字         -左邊距         -右邊距         -頂邊距         -底邊距         -頁長         -用於指明打印時輸出是否格式化的邏輯值,格式化為TRUE,非格式化為FALSE。47如果在[選項]對話框的[轉換]標籤中選擇了[轉換錶達式求值]選擇框,返回TRUE;否則,返回FALSE 48標準欄寬度設置下列type_num值對應於打印與頁的設置。Type_num返回49開始頁的頁碼,如未指明或在[頁面設置]對話框的[頁]標籤下的[起始頁號]文字框輸入了“自動”,返回錯誤值#N/A 50當前設置下欲打印的總頁數,其中包括註釋,如果文件為圖表,值為151如只打印註釋時的總頁數。如文件為圖表類型,返回錯誤值#N/A 52在當前指定的單位中,指明邊距設置(左,右,頂,底)的四項水平數組。53指明方向的數字: 1 =縱向2 =橫向54文本串的頁眉,包括格式化代碼。55文本串的腳註,包括格式化代碼。56包括兩個邏輯值的水平數組,對應於水平垂直方向置中。57如打印行或列的上標題,返回TRUE;否則,返回FALSE。58如打印網格線,返回TRUE;否則,返回FALSE。59如表以黑白方式打印,返回TRUE;否則,返回FALSE。60 1至3中的一個數,指明打印時定義圖表大小的方式。1 =屏幕大小2 =調整到3 =使用整頁61指明重排頁命令的數: 1 =先列後行2 =先行後列如文件為圖表類型,返回錯誤值#N/A 62擴縮比,未指定時為100%。如當前打印機不支持此項操作或文件為圖表類型時,返回錯誤值#N/A。63一個兩項水平數組,指明其報表需按比例換算,以適合的頁數印出,第一項等於寬度(如未指明寬度按比例縮放,返回#N/A)第二項等於高度(如未指明高度按比例縮放,返回#N/A)。如文件為圖表類型,返回#N/A 64行數的數組,相應於手動或自動生成頁中斷下面的行。65列數的數組。相應於手動或自動生成的頁中斷右邊的列。附註GET.DOCUMENT(62)和GET.DOCUMENT(63)互相排斥,如果其中一個返回一個數值,另外一個返回錯誤值#N/A。下列type_num數值對應不同文件設置。Type_num返回66 Microsoft Excel for Windows中,如果在[選項]對話框的[轉換]標籤中選擇了[轉換公式項]選擇框,返回TRUE;否則,返回FALSE。67 Microsoft Excel 5.0版本下,通常返回TRUE。68 Microsoft Excel 5.0版本下,通常返回簿的文件名 ​​。69如果在[選項]對話框的[查看]標誌中選擇了[自動分頁線],返回TRUE;否則,返回FALSE。70返回文件中所有數據透視表的文件名​​71返回表示文件中所有類型的水平數組。72返回表示當前表顯示的所有圖表類型的水平數組。73返回表示當前工作表每一個圖表中系列數的水平數組。74返回控制的對象標識符,控制當前執行中的由用戶定義的對話框編輯表中獲得焦點的控制(以對話框編輯表為基礎)。75返回對象的對象標識符,對象正在執行中的由用戶定義的對話框編輯表中的默認按樞(以對話框編輯表為基礎)。76以[Book1]sheel的形式返回活動表或宏表的文件名 ​​。77以整數的形式返回頁的大小: 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 78返回打印分辨率,為一個二項水平數組。79如在[頁面設置]對話框的[工作表]標籤中選擇[草稿質量]選擇框返回TRUE;否則,返回FALSE。80如在[頁面設置]對話框的[工作表]標籤下選擇了[附註]選擇框,返回TRUE;否則,返回FALSE。

沒有留言:

張貼留言