萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 辦公室軟體 >  >> Excel 教學 >> Excel 綜合

Excel 工作表批量重命名:VBA 一鍵按序號/自訂規則重命名

手動雙擊分頁標籤重命名,十張還好,五十張就崩潰。VBA 幾行代碼即可批量依序號、日期、前綴、清單重命名,並支援錯誤處理(重名、非法字元)。

基本批量重命名代碼(按順序 1,2,3...)

Sub RenameSheetsSequential()
    Dim i As Long
    On Error Resume Next
    For i = 1 To Sheets.Count
        Sheets(i).Name = CStr(i)
    Next i
    On Error GoTo 0
End Sub

進階版:支援自訂前綴、起始編號、跳過隱藏表

Sub RenameSheetsAdvanced()
    Dim ws As Worksheet
    Dim prefix As String, startNum As Long, stepVal As Long
    Dim counter As Long
    
    prefix = InputBox("輸入前綴 (如 '月報_', 留空無前綴):", "批量重命名", "Sheet_")
    If StrPtr(prefix) = 0 Then Exit Sub ' 取消
    
    startNum = Val(InputBox("起始編號:", "批量重命名", 1))
    stepVal = Val(InputBox("遞增步長:", "批量重命名", 1))
    If stepVal = 0 Then stepVal = 1
    
    counter = startNum
    Application.ScreenUpdating = False
    On Error Resume Next
    
    For Each ws In Worksheets
        If ws.Visible = xlSheetVisible Then ' 只重命名可見表
            ws.Name = prefix & counter
            counter = counter + stepVal
        End If
    Next ws
    
    If Err.Number <> 0 Then
        MsgBox "重命名失敗,可能有重名或非法字元: " & Err.Description, vbExclamation
    End If
    On Error GoTo 0
    Application.ScreenUpdating = True
End Sub

其他實用重命名模式

需求核心代碼片段
依 A1 儲存格值命名ws.Name = Left(ws.Range("A1").Value, 31)
依清單命名 (範圍 SourceList)ws.Name = Range("SourceList").Cells(i).Value
加日期後綴ws.Name = ws.Name & "_" & Format(Date, "yyyymmdd")
移除非法字元Replace(Replace(name, "\", ""), "/", "") 等

命名規則限制(必須遵守)

  • 長度 ≤ 31 字元。
  • 不可含:\ / ? * [ ] :
  • 不區分大小寫("Sheet1" = "sheet1" 會衝突)。
  • 不可為「歷史記錄」(保留名)。

手動重命名小技巧

  • 雙擊分頁標籤直接編輯(比右鍵選單快)。
  • Alt+O+H+R (舊版選單鍵) → 重命名。

善用 VBA 批量重命名,配合命名規範,讓百張分頁也能井然有序、秒級定位。

copyright © 萬盛學電腦網 all rights reserved