1. 程式人生 > >EXCEL中如何獲得工作表(sheet)的名稱

EXCEL中如何獲得工作表(sheet)的名稱

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 函式中,預設函式為SUM
32        三項水平陣列,用於指明 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        當前設定下欲列印的總頁數,其中包括註釋,如果檔案為圖表,值為1
51        如只打印註釋時的總頁數。如檔案為圖表型別,返回錯誤值 #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。

81        做為一個單元格的引用,從[頁面設定]對話方塊的[工作表]標籤返回列印區域。
82        做為一個單元格引用從[頁面設定]對話方塊的[工作表]標籤回列印標題。
83        如果工作表為方案而被保護起來,返回TRUE;否則,返回FALSE。
84        返回表中第一個迴圈引用的值,如無迴圈引用,返回錯誤值#N/A。
85        返回表的高階篩選方式狀態。這種方式頂部設有向下的箭頭,如資料精單通過選擇[篩選],再從[資料]選單選擇[高階篩選]被篩選,返回TRUE;否則,返回FALSE。

86        返回表的自動篩選方式狀態。這種方式頂部有向下的箭頭,如選擇了[篩選],再從[資料]選單選擇[自動篩選],篩選向下的箭頭被顯示出來,返回TRUE;否則,返回FALSE。
87        返回指示表的位置的數字,第一張表位置為1。計算中包含隱藏起來的表。
88        以“book1”的形式返回活動工作簿的檔名。

  補充E知識點2
函式定義:
GET.CELL(型別號,[單元格(或範圍)])  '[內容為可選]
型別號說明:
1 參照儲存格的絕對地址
2 參照儲存格的列號
3 參照儲存格的欄號
4 類似 TYPE 函式
5 參照地址的內容
6 文字顯示參照位址的公式
7 參照位址的格式,文字顯示
8 文字顯示參照位址的格式
9 傳回儲存格外框左方樣式,數字顯示
10 傳回儲存格外框右方樣式,數字顯示
11 傳回儲存格外框方上樣式,數字顯示
12 傳回儲存格外框方下樣式,數字顯示
13 傳回內部圖樣,數字顯示
14 如果儲存格被設定 locked傳回 True
15 如果公式處於隱藏狀態傳回 True
16 傳回儲存格寬度
17 以點為單位傳回儲存格高度
18 字型名稱
19 以點為單位元傳回字號
20 如果儲存格所有或第一個字元為加粗傳回 True
21 如果儲存格所有或第一個字元為斜體傳回 True
22 如果儲存格所有或第一個字元為單底線傳回True
23 如果儲存格所有或第一個字元字型中間加了一條水平線傳回 True
24 傳回儲存格第一個字元色彩數字, 1 至 56。如果設定為自動,傳回 0
25 MS Excel不支援大綱格式
26 MS Excel不支援陰影格式
27 數字顯示手動插入的分頁線設定
28 大綱的列層次
29 大綱的欄層次
30 如果範圍為大綱的摘要列則為 True
31 如果範圍為大綱的摘要欄則為 True
32 顯示活頁簿和工作表名稱
33 如果儲存格格式為多行文字則為 True
34 傳回儲存格外框左方色彩,數字顯示。如果設定為自動,傳回 0
35 傳回儲存格外框右方色彩,數字顯示。如果設定為自動,傳回 0
36 傳回儲存格外框上方色彩,數字顯示。如果設定為自動,傳回 0
37 傳回儲存格外框下方色彩,數字顯示。如果設定為自動,傳回 0
38 傳回儲存格前景陰影色彩,數字顯示。如果設定為自動,傳回 0
39 傳回儲存格背影陰影色彩,數字顯示。如果設定為自動,傳回 0
40 文字顯示儲存格樣式
41 傳回參照地址的原始公式
42 以點為單位傳回使用中視窗左方至儲存格左方水平距離
43 以點為單位傳回使用中視窗上方至儲存格上方垂直距離
44 以點為單位傳回使用中視窗左方至儲存格右方水平距離
45 以點為單位傳回使用中視窗上方至儲存格下方垂直距離
46 如果儲存格有插入批註傳回 True
47 如果儲存格有插入聲音提示傳回 True
48 如果儲存格有插入公式傳回 True
49 如果儲存格是陣列公式的範圍傳回 True
50 傳回儲存格垂直對齊,數字顯示
51 傳回儲存格垂直方向,數字顯示
52 傳回儲存格字首字元
53 文字顯示傳回儲存格顯示內容
54 傳回儲存格資料透視表名稱
55 傳回儲存格在資料透視表的位置
56 樞紐分析
57 如果儲存格所有或第一個字元為上標傳回True
58 文字顯示傳回儲存格所有或第一個字元字型樣式
59 傳回儲存格底線樣式,數字顯示
60 如果儲存格所有或第一個字元為下標傳回True
61 樞紐分析
62 顯示活頁簿和工作表名稱
63 傳回儲存格的填滿色彩
64 傳回圖樣前景色彩
65 樞紐分析
66 顯示活頁簿名稱

方法四
使用自定義函式
Function Intsheet(x As Integer)
If x = 0 Then
Intsheet = ActiveCell.Parent.Name

ElseIf x > 0 And x <= Sheets.Count Then
Intsheet = Sheets(x).Name
ElseIf x > Sheets.Count Then
MsgBox "超出範圍"
End If
Application.Volatile
End Function

取當前工作表名稱
=Intsheet(0)
取第N個工作表名稱
=Intsheet(N)
N為正整數


http://blog.sina.com.cn/s/blog_53864cba0100hob6.html