VBA常用小代码:就任性!一键批量更改工作表名称~

照例举个例子,如下图的A列所示,工作表名是一些可爱家伙。

现在,我们想把工作表名称,根据E:F列的匹配信息,修改为如下形式,部门-人名:

(栗子里表名修改的规则,就是依照E:F的信息,在每个人名前增加部门的前缀)

我们可以先把该工作簿现有工作表的名称提取出来,放置在表格的A列。如此一来,我们就可以很方便的利用函数公式,比如IF、VLOOKUP函数等,根据E:F列的内容,对表名做针对性的修改。

看我小眼神,这就用到了我们之前说的VBA常用小代码系列001,一键生成工作表目录不是?

利用该段小代码,一键我们就可以把表名提取到A列了。

当然,那期的代码是批量提取工作表名称并建立超链接,我们这里不需要建立超链接,代码可以简化如下:


Sub ml()

'EH VBA公众号VBA编程学习与实践

Dim sht As Worksheet, k&

[a:a].ClearContents '清空A列内容

[a:a].NumberFormat = '@'

'设置文本格式,防止文本数值数据变形

[a1] = '目录'

k = 1

For Each sht In Worksheets

'遍历工作簿中每个工作表

k = k + 1

'累加K值

Cells(k, 1) = sht.Name

'将工作表名称依次放入表格A列

Next

End Sub


第二步,我们把新的工作表名称用函数计算出来,放在表格的B列。

该例中的E:F列提供了每个人员的部门参数,我们可以在B2输入公式,并向下复制填充:

=IFERROR(VLOOKUP(A2,E:F,2,)&'-'&A2,A2)

最后,就是一键更名了。

代码也不长,如下:


Sub Rename()

Dim shtname$, sht As Worksheet, i&

On Error Resume Next

'当程序运行中出现错误时,继续运行

For i = 2 To Cells(Rows.Count, 1).End(3).Row

'遍历当前表格A列的数据

shtname = Cells(i, 1).Value

'将表格A列的值,赋予变量shtname

'之所以将shtname的变量类型定义为文本,是防止A列数据为数值时和sheet序列引用产生冲突。

Worksheets(shtname).Name = Cells(i, 2).Value

Next

End Sub


看下动画效果:

是不是很有趣小炫酷?

当然,我们也可以把两段代码合并成一段代码,也就是省略把工作表名称提取到A列后再用函数更名的步骤,直接通过VBA编程进行更名,但为了方便大家容易理解和更加灵活的使用这段小代码,这里选择了两步走的方案。

(0)

相关推荐

  • 【技巧1001-18】- 小白可用的完全自动更新的工作表目录

    其实前面我们也做过工作表目录的教程,只是那个没有办法自动更新,一旦有新增或者删减不是很方便. 今天我们就来分享 一个小白都可以套用的 技巧18 -全自动更新的工作表目录 不管是新增还是工作表删除,我们 ...

  • 惊了!每天按时下班的男同事,私下竟用Excel搞「多人运动」!【excel教程】

    全套Excel视频教程,扫码观看 编按: 哈喽,大家好!在日常工作中,工作表经常会被多人编辑,为此,我们往往需要为不同的人设置不同的查看权限,以实现工作表的分级保密.下面分享一种用VBA设置权限的方法 ...

  • 就任性!批量更改工作表名称

    今天和大家分享的VBA小代码内容是-- 呃,对了,先说个事,之前给大家分享的一键提取工作表名称并建立超链接的小代码,不知道大家还记得吗?VBA常用小代码:一键生成带超链接的工作表目录 您问我为啥突然问 ...

  • VBA常用小代码:按指定字段将总表数据拆分为多个工作簿

    举个栗子,如上图所示的数据表,倘若需要按班级,将该表的数据拆分为1~2~3班三个工作簿,并保留在电脑的指定位置,就可以使用我们今天这篇小代码了. 操作动画演示: 动画中所粘贴的代码如下: Sub Ne ...

  • 42、VBA常用小代码101:批量改变单元格部分字符格式

    先来一首提神的歌儿,上古洪荒时期的豪迈神曲,从字面逻辑上来说,有了这歌之后,才有了说走咱就走啊--世界那么大,我想去看看--哈哈,这首歌就是-- 走四方 韩磊 - 隐藏的歌手第二季 第2期 嗯,说正事 ...

  • VBA常用小代码:批量将工作表转为独立工作簿

    有时,我们需要将一个工作簿里的每一张工作表,另存为单独的工作薄:如果只是一两张工作表需要这样处理,我们手工操作就挺好的,可如果是若干张,手工操作--岂不是太朴素? 如果使用VBA来处理,这事就简单了. ...

  • VBA常用小代码:对工作表按名称快速排序

    比如说,有一个工作薄,有十几张工作表,现在要重新设置工作表排放顺序,能不能快速处理哩? 当然是可以的. 为了方便大家理解和灵活使用VBA小代码,我们同03期一样,依然采用多步走的方式. 第1步,将工作 ...

  • VBA常用小代码:Rang对象的排序操作

    这年头,小屁孩都寄道数据排序是数据处理过程中非常重要的一个环节,Excel也直接提供了[排序]的基础功能,VBA代码与之相对应的,便是Rang对象的Sort方法. 举个栗子.如下图所示,需要对B列的语 ...

  • VBA常用小代码203:汇总多个工作簿每个工作表名称包含指定关键词的数据到总表

    --阿嚏--谁这么想我--呵~最近天气一天凉比一天,小伙伴们记得多穿几层秋裤--多喝温开水少熬夜----以上是来自一位身穿短袖短裤大哥哥的贴心话. 咳~我们上期分享了:VBA常用小代码202:汇总指定 ...

  • 如何批量提取工作表名称

    如何将工作簿中的所有工作表名称批量提取出来呢? 这里有两种方法: 一.专业法 第一步:点击公式--定义名称,在开的界面中定义好名称,比如"名称",在引用位置中输入公式=MID(GE ...

  • 让效率飞起来!Excel批量修改工作表名称。

    Excel按A列数据批量修改表名称!微信公众号 Excel情报局昨日高效技能温故知新:Excel表格一拆多,小问题大智慧!Excel图片随单元格隐藏!Excel单元格内容批量复制到合并单元格,超越职场 ...