http://www.pptjcw.com

excel宏教程:就任性!批量更改工作表名称

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

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

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

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

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


    excel宏教程:就任性!批量更改工作表名称

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


    excel宏教程:就任性!批量更改工作表名称



    (栗子里表名修改的规则,就是依照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

    看下动画效果:


    excel宏教程:就任性!批量更改工作表名称

    是不是很有趣小炫酷?

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

    提示:如果您觉得本文不错,请点击分享给您的好友!谢谢

    上一篇:excel函数教程:VBA常用小代码:一键批量取消工作表隐藏 下一篇:表格制作excel教程:VBA常用小代码:一键生成带超链接的工作表目录

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。