如何批量修改工作表名稱
發(fā)布時間:2022-11-07 11:00 [ 我要自學網(wǎng)原創(chuàng) ] 發(fā)布人: 小劉2175 閱讀: 6404

今天和大家分享的VBA小代碼內容是……

呃,對了,先說個事,之前給大家分享的一鍵提取工作表名稱并建立超鏈接的小代碼,不知道大家還記得嗎?VBA常用小代碼:一鍵生成帶超鏈接的工作表目錄

您問我為啥突然問這話,絕壁不是我犯抽,而是那段小代碼對我們今天的問題非常重要。

我們今天分享的內容是——如何一鍵批量修改工作表名稱。

舉個例子,如下圖的A列所示,工作表名是一些可愛家伙。




現(xiàn)在,我們想把工作表名稱,根據(jù)E:F列的匹配信息,修改為如下形式,部門-人名:





(栗子里表名修改的規(guī)則,就是依照E:F的信息,在每個人名前增加部門的前綴)

首先,我們把該工作簿現(xiàn)有工作表的名稱提取出來,放置在表格的A列。這樣一來,我們就可以很方便的利用函數(shù)公式,比如IF、VLOOKUP函數(shù)等,根據(jù)E:F列的內容,對表名做針對性的修改。

看我小眼神,這就用到了我們之前說的VBA常用小代碼系列,一鍵生成工作表目錄不是?

利用該段小代碼,一鍵我們就可以把表名提取到A列了。

當然,那期的代碼是批量提取工作表名稱并建立超鏈接,我們這里不需要建立超鏈接,代碼可以簡化如下:

Sub ml()
    Dim sht As Worksheet, k&
    [a:a] = “”
    ‘清空A列數(shù)據(jù)
    [a1] = “目錄”
    k = 1
    For Each sht In Worksheets
    ‘遍歷工作簿中每個工作表
        k = k + 1
        ‘累加K值
        Cells(k, 1) = sht.Name
        ‘將工作表名稱依次放入表格A列
    Next
End Sub

第二步,我們把新的工作表名稱用函數(shù)計算出來,放在表格的B列。

該例中的E:F列提供了每個人員的部門參數(shù),我們可以在B2輸入公式,并向下復制填充:

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

最后,就是一鍵更名了。

代碼也不長,如下:

Sub rename()
    Dim shtname$, sht As Worksheet, i&
    On Error Resume Next
   ‘當程序運行中出現(xiàn)錯誤時,繼續(xù)運行
    For i = 1 To Cells(Rows.Count, 1).End(3).Row
    ‘遍歷當前表格A列的數(shù)據(jù)
        shtname = Cells(i, 1)
        ‘將表格A列的值,賦予變量shtname
        ‘之所以將shtname的變量類型定義為文本,是防止A列數(shù)據(jù)為數(shù)值時和sheet序列引用產(chǎn)生沖突。

        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列后再用函數(shù)更名的步驟,直接通過VBA編程進行更名,但為了方便大家容易理解和更加靈活的使用這段小代碼,這里選擇了兩步走的方案。

Excel2019視頻教程
我要自學網(wǎng)商城 ¥80 元
進入購買
文章評論
0 條評論 按熱度排序 按時間排序 /350
添加表情
遵守中華人民共和國的各項道德法規(guī),
承擔因您的行為而導致的法律責任,
本站有權保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。
V
特惠充值
聯(lián)系客服
APP下載
官方微信
返回頂部
分類選擇:
電腦辦公 平面設計 室內設計 室外設計 機械設計 工業(yè)自動化 影視動畫 程序開發(fā) 網(wǎng)頁設計 會計課程 興趣成長 AIGC