打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
提取工作表名,函数和vba代码哪个更方便?

你好,我是刘卓。欢迎来到我的公号,excel函数解析。在工作中,我们有时需要提取出工作簿中所有分表的名字,以方便我们在总表中进行数据的汇总。而提取工作表名既可以用函数,也可以用vba代码。今天就来分享下这两种方法,看看你更喜欢哪一种?


下面的工作簿中,有好几个部门的分表,记录的是各部门员工的工资。现在的要求是在“总表”中汇总出各部门的总工资。比如“财务部”所有员工的总工资为21427,就在“总表”中汇总出来。


想要在总表”中汇总出各部门的总工资,必须先提取出各部门的名称,也就是提取出各分表的表名,然后才能计算出总工资。下面就来分享下提取工作表名的两种方法。

-01-

工作表函数


利用工作表函数提取工作表名,只能用宏表函数了。这里我们用get.workbook函数,它可以返回有关工作簿的一些信息。语法如下,有2个参数。
GET.WORKBOOK(type_num, name_text)
第1参数type_num:代表返回信息类型的一个数字,有多种类型。常用的有1,3,38。

第2参数name_text:打开的工作簿的名字。如果省略,默认为当前工作簿。通常是省略的。

get.workbook(1)以水平数组的方式返回当前工作簿的所有工作表名,每个工作表名分为两部分,前面是用中括号括起来的工作簿名,后面是工作表名。比如:"[2020.12.15   提取工作表名字,函数和vba代码大比拼.xlsm]财务部"。

宏表函数只能在定义名称中使用,所以先定义一个名称。点【公式】-【定义名称】,在名称中输入bm,引用位置输入公式:=GET.WORKBOOK(1)&T(NOW()),点确定。
然后在单元格中输入公式=bm,确定。再在编辑栏选中公式(抹黑状态)按F9查看结果,可以看到以数组的形式返回所有工作表名。数组的元素以逗号分隔,所以是水平数组。

得到了这些工作表名,就可以进行进一步的处理了。先把右中括号]后面的工作表名提取出来,得到了一个数组。然后再从这个数组中取出每个工作表名。具体的过程我就不详细说明了,下面直接给出公式。

在“总表”的A2单元格输入公式=IFERROR(INDEX(MID(bm,FIND("]",bm)+1,99),ROW(A2)),""),下拉填充。不理解这个公式的小可爱,可以回顾《表名再多也不怕!一条公式提取所有工作表名》这篇文章。



-02-

vba代码

下面来看下用vba代码提取工作表名的方法,只需点一下按钮就好。
它的代码如下,就是一个简单的for each...next循环。

对于提取工作表名,我个人还是更喜欢vba代码,感觉确实比函数省事,你更喜欢哪种方法呢?


-03-
汇总各部门工资

工作表名提取出来后,最后我们来汇总下各部门的工资。在“总表”的B2单元格输入公式=SUM(INDIRECT("'"&A2&"'!b:b")),下拉填充。
链接:

https://pan.baidu.com/s/1atx9ZB5Ztxd3959c0y8e5g

提取码:sd6y
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
完全手册Excel VBA典型实例大全:通过368个例子掌握
Excel揭秘8:看看方括号在VBA中的妙处——有用的Evaluate方法
30个有用的Excel VBA代码
Excel之VBA常用功能应用篇:建立自己的自动化图表模板
Excel2003高级VBA编程宝典
vba判断是否打开 如何用VBA检查Caps Lock键的相关知识
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服