将 Excel 工作簿中的多个工作表拆分为单独的文件并以表头名称命名

发布时间 2023-03-24 10:34:58作者: 自律™

此教程适用于 WPS Office Excel 和 Microsoft Office Excel。

步骤

  1. 打开 Excel,然后打开包含多个工作表的工作簿。
  2. Alt + F11 快捷键打开 VBA 编辑器。
  3. 在 VBA 编辑器中,点击菜单栏的 插入 -> 模块,新建一个模块。
  4. 在新建的模块中,粘贴以下 VBA 代码:
  5. 按 Ctrl + S 保存 VBA 项目。
  6. 按 F5 或点击 VBA 编辑器菜单栏的 运行 -> 运行子例程 来运行刚刚粘贴的代码。
    现在,这个 VBA 代码将遍历您打开的工作簿中的所有工作表,并将每个工作表另存为一个单独的 Excel 文件。这些新文件将保存在原始工作簿所在的文件夹中,文件名将根据每个工作表的 A1 单元格的内容(去除空格后的表头名称)命名。
Sub SplitWorkbookByHeader()

    Dim xPath As String
    Dim xWs As Worksheet
    Dim xHeader As String
    
    xPath = Application.ActiveWorkbook.Path
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    For Each xWs In ThisWorkbook.Worksheets
        xHeader = RemoveSpaces(xWs.Range("A1").Value)
        xWs.Copy
        Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & xHeader & ".xlsx"
        Application.ActiveWorkbook.Close False
    Next xWs
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

End Sub

Function RemoveSpaces(s As String) As String
    RemoveSpaces = Replace(s, " ", "")
End Function