把工作表名称提取到单元格里(批量提取sheet表名)
今天我们开一个小的系列,自动化办公,提供一下可以自动化处理的方法和技巧
第一期,我们分享自动获取工作表名称
获取表名的方式有很多,比如技巧法、函数法、宏表函数法、VBA、PQ等
我们本期介绍的是:宏表函数法
需要说明的是宏表函数属于excel4中遗留下来的方式,无法直接在工作表中使用,需要通过自定义名称 或者在VBA中使用
以下是最最最详细的制作教程及原理解析:
1、定义名称
这里我们通过GET.WORKBOOK(1)来获取全部名称,具体我们看下图
2、使用定义名称
定义好的名称,我们可以直接在工作表输入=定义的名称使用
具体如下:
3、获取全部工作表名称
上一步我们看到只有一个名称 而且格式是[文件名]表名
但是其实里面存放了所有的表名,只是一个单元格只呈现出一个
具体我们只要,点击进入公司尾部,按下F9即可查看全部结果
我们通过动画来给大家演示具体的过程和效果:
4、清理提取表名
第三步中我们知道,其实表名都在其中,那么我就要想办法提取
首先要考虑去掉文件名,保留下表名,然后再逐个提取
去掉文件可以使用替换函数处理-Replace
具体公式:=REPLACE(全部表名,1,FIND("]",全部表名),"")
这里有两个函数一个是FIND用于查询"]"的位置,然后通过REPLACE替换
为了帮助大家更好的理解,我们这里再详细说一下涉及的函数
FIND函数:
语法:FIND(查什么,待查的字符)
结果:如果找到返回对应的位置,否则报错
案例演示:
REPLACE函数:
语法:REPLACE(待处理字符串,开始位置,字符长度,替换字符)
结果:替换后的结果
案例:相对于去掉开始两个字符串,替换成了空内容
这样我们应该就理解了上方的公式了!
5、依次写入工作表
在上一步中,我们已经把文件名去掉,剩下的就是一组表名,通过F9,我们知道都在单元格中,但是如何提取呢?这里我们就要请出INDEX函数
公式:=INDEX(REPLACE(全部表名,1,FIND("]",全部表名),""),ROW(A1))
这里我们只解析这里的INDEX语法,实际用法还有很多种
INDEX函数:
语法:INDEX(数组,第几个)
结果:按照第二参数取出
ROW的部分是生成对应的单元格行号,比如ROW(A2)=2
我们只需要关注行即可,列不影响
我们发现,下面多处的部分就会报错,此时,我们只要使用IFERROR函数来屏蔽错误即可
IFERROR函数:
语法:IFERROR(原公式,出错后显示的内容)
结果:容错后的结果
这里我们希望出错后什么都不显示,此时一般我们使用一对双引号
公式:=IFERROR(INDEX(REPLACE(全部表名,1,FIND("]",全部表名),""),ROW(A1)),"")
公式效果如下:
通过上面5步,我们应可以获取到全部表名,但是有一个问题,就是以上的方式是否可以实现新增的自动获取和修改后自动更新两点,如果不能,那么谈不上自动化。
如果你去试了,会发现确实不行,因为我们还有最后一步没有完成
那就是第六步
6、自动更新
自动更新我们利用两个函数来实现,第一个是NOW,第二个是T函数
NOW函数:可以返回电脑上的日期时间,精确到秒,基本可以说是实时刷新更新,最核心的是他们是易失性函数,这个大家可能陌生的概念,可以简单理解为 过一段时间或重新打开表格会自动重新计算的函数,这里重点是过一段时间就会刷新,这完美配合了NOW的实时更新!
T函数:你可能认为他一个字母而已,但是他确认是一个函数,他的功能就是
T(内容)-如果内容是文本就返回内容,否则返回空
介绍完二者,那么我们如果你用他们来实现自动更新呢?
NOW结果是时间,不是文本那么T(NOW()) 就会范围空,如果我们在一个公式的最后 &T(NOW()),就可以实现在不改变函数功能的情况下,实现实时更新。
如上分析后,我们的第一步公式更新一下如下:
公式:=GET.WORKBOOK(1)&T(NOW())
我们采用这种方式,也是希望加深大家的印象,希望大家都能学会!
最后我们通过一个动画,看看他们的效果吧!
增、删、改,都可以实时更新表名!
在文章的最后,我们要补充的就是保存文件的问题,很多好奇这有什么好说的,但是大家尝试就知道,不能保存为xlsx格式,因为他是宏表函数,我们需要保存为xls或者xlsm,含有宏的文件格式
OK,今天的超详细的自动化教程第一期就到这里
有好的方法或者意见欢迎留言交流,有想学习的知识点也欢迎留言,小编会
安排,安排!!
Excel办公实战,高效办公,每天进步一点点!
关注小编,下次精彩不迷路!
喜欢小编的文章,一定要点赞,关注,转发
您的鼓励是小编最大的动力!