ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 25662|回复: 22

[求助] 如何在表中实现自动提取表格名称?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-6-9 21:18 | 显示全部楼层 |阅读模式
如果一张EXCEL 内有 N个工作表分别为 1月,2月,3月,。。。。   那么我想在表“1月”中的表格,自动抓取到表格名称“1月”作为表内的某个单元格内容,请问如何实现?

TA的精华主题

TA的得分主题

发表于 2009-6-9 21:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
用宏表函數可以達到樓主的要求,請上傳附件.

TA的精华主题

TA的得分主题

发表于 2009-6-9 21:22 | 显示全部楼层

回复 1楼 哄哄 的帖子

請看看是不是這樣?

Book1.rar

3.24 KB, 下载次数: 571

TA的精华主题

TA的得分主题

发表于 2009-6-9 21:47 | 显示全部楼层
没有看出什么效果啊??楼上的大虾请指教

TA的精华主题

TA的得分主题

发表于 2009-6-9 21:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 4楼 SUPER-YAYA 的帖子

没看出效果?再仔细看看?

TA的精华主题

TA的得分主题

发表于 2009-6-9 21:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 SUPER-YAYA 于 2009-6-9 21:47 发表
没有看出什么效果啊??楼上的大虾请指教

在表中的任一單元格輸入"=sheet",都會得到當前表的表名.

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-10 08:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
好象不对
输入“=sheet"的话,显示了 “#NAME?”

TA的精华主题

TA的得分主题

发表于 2009-6-10 09:21 | 显示全部楼层
方法一
  常规方法 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.163.com/ycy_sdfc/blog/static/1961804200813105220429/

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-6-10 09:30 | 显示全部楼层
=MID(CELL("filename",A1),FIND("]",CELL("filename"))+1,255)

Book.rar

3.1 KB, 下载次数: 319

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-13 08:37 | 显示全部楼层
谢谢各位。成功了
不过各位大侠,能不能解释一下这几个函数呢?让我也学一下
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 07:39 , Processed in 0.052820 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表