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

今天和大家分享的VBA小代码内容是……

呃,对了,先说个事,之前给大家分享的一键提取工作表名称并建立超链接的小代码,不知道大家还记得吗?VBA常用小代码:一键生成带超链接的工作表目录

您问我为啥突然问这话,绝壁不是我犯抽,而是那段小代码对我们今天的问题非常重要。

我们今天分享的内容是——如何一键批量修改工作表名称。

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

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

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

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

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

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

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

Sub ml()
    Dim sht As Worksheet, k&
    [a:a] = “”
    '清空A列数据
    [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 = 1 To Cells(Rows.Count, 1).End(3).Row
    '遍历当前表格A列的数据
        shtname = Cells(i, 1)
        '将表格A列的值,赋予变量shtname
        '之所以将shtname的变量类型定义为文本,是防止A列数据为数值时和sheet序列引用产生冲突。
        Set sht = Sheets(shtname)
        If Err = 0 Then
          '如果工作簿存在sht表,则更名
            Sheets(shtname).Name = Cells(i, 2)
        Else
           '如果工作薄不存在sht表,则清除错误,对下一个值判断处理
            Err.Clear
        End If
    Next
End Sub

看下动画效果:

是不是很有趣小炫酷?

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

(0)

相关推荐

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

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

  • 一键导出Excel中的所有批注!

    个人比较反感使用批注,这玩意使用起来方便,但是别人查看非常的不方便 但是工作中还是经常遇到使用的,有时候一个文件中表特别多,我又不想一个一个去看,其次即使看了也难保有遗漏,所以我就写了一个一键导出! ...

  • 『懒人』办公现状 - 一键搞定!!!

    关于销售日前,昨天我们写了一批,通过技巧法完成批量生成,但是对于我这种"懒人",还是有点麻烦的!今天我们就分享一种更加高效的方法! 一键搞定 日报 | 批量生成 大概就是这种效果 ...

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

    照例举个例子,如下图的A列所示,工作表名是一些可爱家伙. 现在,我们想把工作表名称,根据E:F列的匹配信息,修改为如下形式,部门-人名: (栗子里表名修改的规则,就是依照E:F的信息,在每个人名前增加 ...

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

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

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

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

  • Excel技巧精选 | 如何用批量创建Excel工作表名称?

    --正文开始-- 要一个一个给工作表改名字,如何是个头啊. 「牛闪闪有没有好方法?」--一位客户微信上询问. 这个问题利用透视表也许能较快的解决.我们来操作看看. 场景    财务.HR.采购.市场, ...

  • 按指定名称批量创建工作表

    个人微信号 | (ID:LiRuiExcel520) 微信服务号 | 跟李锐学Excel(ID:LiRuiExcel) 微信公众号 | Excel函数与公式(ID:ExcelLiRui) 按指定名称批 ...

  • Excel如何更改工作表的名称?

    Excel可以分为很多个工作表,但是工作表的名称都是默认的英文字母,如果我们想 自定义的话需要如何去做呢?下面看小编的操作吧! 1.打开Excel表 我们首先点击Excel表,鼠标右键,在打开方式中选 ...

  • VBA之批量生成工作表及获取工作表名称

    前言 当你需要批量生成工作表及获取工作表名称时,懂点VBA将事半功倍. 1批量生成工作表 先命名"汇总"表,在A列中输入要生成的工作表名称.如下图所示: ALT+F11 打开VBA ...

  • 使用函数如何获取工作表名称

    今天我们来聊一下如何获取工作表名称,一般做目录经常需要用到,顺便见见宏表函数的应用! 从2003版本开始,我们已经无法直接在工作表中使用宏表函数,那是Excel4.0版本遗留一下,也是现在VBA或者宏 ...

  • Excel VBA 5.31 禁止添加新的工作表 禁止修改工作表名称

    禁止添加新的工作表 禁止修改工作表名称 点击上方"Excel和VBA",选择"置顶公众号" 致力于原创分享Excel的相关知识,源码,源文件打包提供 一起学习, ...