跳至主要内容

如何从 Excel 中删除宏(完整指南)

Author: Amanda Li Last Modified: 2025-05-07

Microsoft Excel 提供了强大的宏功能,可以自动执行重复性任务,并完成许多内置 Excel 功能无法实现的操作。然而,在某些情况下,这些宏可能会变得多余,甚至可能带来潜在的安全风险,尤其是在与他人共享工作簿时。在这些时刻,了解如何安全有效地删除宏变得至关重要。本指南旨在引导您通过多种方法从 Excel 工作簿中删除宏,确保在需要时拥有一个干净、精简的文件。


在 Excel 中删除宏之前需要了解的内容

  • 当打开一个启用了宏的工作簿并尝试删除宏时,必须首先单击工作簿中的“启用内容”按钮。这是继续删除宏前的必要步骤。
  • The Enable Content button
  • 注意:如果您没有看到此按钮,则表示您可以直接删除宏。其原因可能是您自己创建了一个嵌入宏的工作簿并保存了下来。当在同一台计算机上重新打开该工作簿且 Excel 设置未更改时,“启用内容”按钮通常不会显示。这是因为文件来自可信来源(即您自己),并且位于可信位置(您的电脑)。

  • 请注意,一旦删除了宏,就无法恢复。为了保护您的工作,建议在删除任何宏之前先创建工作簿的备份副本。

删除特定的宏

步骤 1:打开宏对话框

导航到“开发工具”选项卡并选择“”以打开对话框。(如果在您的 Excel 中看不到“开发工具”选项卡,请参阅步骤后的说明。)

The Macros button on the Developer tab

提示:
  • 如果您使用的是 Excel 2013 或更高版本,“”按钮也可以在“视图”选项卡中找到。
  • 快捷键爱好者可以直接按 Alt + F8 访问对话框。

步骤 2:选择并删除特定的宏

  1. 展开“宏所在位置”下拉菜单,并选择要从中删除宏的目标位置。
  2. 从宏列表中,选择要删除的宏。
  3. 单击“删除”。
  4. The Macro dialog box

注意:

  • 要添加 开发工具 选项卡到 Excel 的功能区,请按照以下步骤操作:
    1. 右键单击功能区上的任意位置,然后选择 自定义功能区….
      The Customize the Ribbon option on the context menu
    2. 在出现的窗口右侧的 主选项卡 列表中,勾选 开发工具 旁边的复选框,然后单击 确定.
      Check the Developer box
  • 如果您打算删除多个宏,则必须对每个单独的宏重复上述过程。有关批量删除所有宏的说明,请继续阅读以下部分。

从工作簿中删除所有宏

在需要从工作簿中删除所有宏的情况下,这里有两种方法:


通过将文件保存为 xlsx 格式删除工作簿中的所有宏

“Excel 工作簿 (*.xlsx)”格式本身不支持宏。因此,将工作簿保存为此特定格式将自动删除所有嵌入的宏。要执行此方法,请按照以下步骤操作:

  1. 导航到 文件 > 另存为
  2. 展开文件类型下拉菜单并选择“Excel 工作簿 (*.xlsx)”格式。
    提示:您可以在下拉菜单上方的文本框中输入 .xlsx 文件的新名称。要将文件保存到其他位置,请单击 浏览
  3. 单击 保存.
    The Save As window

    注意:不同 Excel 版本的“另存为”界面可能有所不同。如果您没有看到如上所示的右侧窗格(可选择文件格式),则可以随时单击 浏览 并选择 “Excel 工作簿 (*.xlsx)”格式。

  4. 在出现的提示框中,选择
  5. The prompt box

结果

结果是,一个新的“.xlsx”格式的无宏文件被保存下来。这个 .xlsx 文件将采用原始 .xlsm 文件的名称,并保存在同一位置。

注意:此方法不会删除用户窗体、Excel 5/95 对话框工作表及类似元素。如果您希望消除这些内容,请参考下一个方法。


使用 Kutools 提供的一键选项删除工作簿中的所有宏

Kutools for Excel 是一款高级 Excel 插件,它为用户提供了一键选项,可以轻松删除工作簿中嵌入的所有宏。只需单击一下,即可清除 VBA 模块、用户窗体、Excel 5/95 对话框以及 Excel 4 XLM 宏工作表。

打开包含要删除宏的工作簿后,导航到 Kutools 选项卡,然后选择 删除 > 删除所有宏。就这样,您完成了!

Select Kutools> Delete > Remove All Macros

注意:想访问此功能吗?立即下载 Kutools for Excel!除此之外,Kutools 还有 300 多种其他功能,并提供 30 天试用期。不要再等了,今天就试试吧!


从多个工作簿中删除所有宏

当面临从多个工作簿中删除宏的任务时,您可以采取以下两种方法:


使用 VBA 从文件夹中的工作簿删除所有宏

在本节中,我将演示如何使用 VBA 宏高效地从指定文件夹中的所有工作簿中删除宏。

注意: 在使用 VBA 宏删除宏之前,您需要:
  • 导航到 文件 > 选项 > 信任中心 > 信任中心设置 > 宏设置,然后选择“信任对 VBA 工程对象模型的访问”选项。
  • 确保在执行此 VBA 时指定文件夹中的所有工作簿都已关闭。运行时如果有打开的工作簿可能会导致错误。

步骤 1:创建新模块

  1. Alt + F11 打开 Visual Basic for Applications (VBA) 编辑器。
  2. 单击 插入 > 模块 以创建一个新模块。
  3. Click Insert> Module in the VBA editor

步骤 2:将 VBA 代码复制到模块窗口

复制以下 VBA 代码并将其粘贴到打开的 模块 窗口中。

Sub RemoveMacrosFromWorkbooks()
' Update by ExtendOffice

    Dim wb As Workbook
    Dim FolderPath As String
    Dim filename As String
    Dim VBComp As Object
    Dim VBProj As Object

    With Application.FileDialog(msoFileDialogFolderPicker)
        .title = "Select a folder"
        .Show
        If .SelectedItems.Count = 0 Then
            MsgBox "No folder selected. The procedure will exit.", vbExclamation
            Exit Sub
        End If
        FolderPath = .SelectedItems(1)
    End With

    If Right(FolderPath, 1) <> "\" Then FolderPath = FolderPath + "\"

    filename = Dir(FolderPath & "*.xls*")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    On Error Resume Next
    Do While filename <> ""
        Set wb = Workbooks.Open(FolderPath & filename)

        If wb.HasVBProject Then
            Set VBProj = wb.VBProject
            
            For Each VBComp In VBProj.VBComponents
                VBProj.VBComponents.Remove VBComp
            Next VBComp
        End If

        wb.Close SaveChanges:=True

        filename = Dir
    Loop
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    MsgBox "Macros removal completed!", vbInformation

End Sub

步骤 3:运行 VBA 代码

  1. 模块 窗口中,按 F5 或单击 Run button 按钮以执行粘贴的代码。
  2. 在出现的“选择文件夹”窗口中,选择包含要删除宏的工作簿的文件夹,然后单击 确定
  3. The Select a folder window

结果

宏处理完所选文件夹中的所有 Excel 文件并删除其中的宏后,您将看到一个“宏删除完成!”的消息框。

The 'Macros removal completed!' message box

注意:

  • 此方法不会删除用户窗体、Excel 5/95 对话框工作表及类似元素。如果您希望消除这些内容,请参考下一个方法。
  • 激活“信任对 VBA 工程对象模型的访问”选项可能会带来安全风险。建议仅在运行此代码时启用该选项。确保代码执行完成后取消选择“信任对 VBA 工程对象模型的访问”选项。

使用 Kutools 删除特定工作簿中的所有宏

Kutools for Excel 提供了一种用户友好的方式,可以从多个工作簿中删除所有宏。对于那些不熟悉或不愿使用 VBA 技术的人来说,Kutools 是一个理想的替代方案。有了这个工具,您可以轻松删除 VBA 模块、用户窗体、Excel 5/95 对话框工作表和 Excel 4 XLM 宏工作表。

注意:要运行此功能,您需要信任对 VBA 工程对象模型的访问。在 Excel 中,请导航到 文件 > 选项 > 信任中心 > 信任中心设置 > 宏设置,然后选择“信任对 VBA 工程对象模型的访问”选项。

下载并安装 Kutools for Excel 后,请按照以下步骤操作:

  1. 选择 Kutools > 删除 > 批量删除所有宏
  2. Select Kutools> Delete > Batch Remove All Macros
  3. 批量删除所有宏 对话框中,列出了所有打开的工作簿以供宏删除。以下是接下来需要做的事情:
    1. 要添加更多用于宏删除的工作簿,请单击 添加 按钮,并选择 文件文件夹
    2. 如果有任何工作簿您希望排除在宏删除过程之外,请单击 The Batch Remove All Macros window 按钮将其移除。
    3. 在对话框中列出所有需要删除宏的工作簿后,单击 确定
    4. Success popup

结果

将弹出一个新对话框,指示 Kutools 已处理了多少个工作簿以进行宏删除。按下 确定后,将生成一个自动化摘要工作簿以概述结果。

注意:

  • 想访问此功能吗?立即下载 Kutools for Excel!此外,Kutools 还提供了 300 多种其他功能。30 天免费试用,没有理由再等待。今天就试试吧!
  • 激活“信任对 VBA 工程对象模型的访问”选项可能会带来安全风险。建议仅在运行此功能时启用该选项。确保功能执行完成后取消选择“信任对 VBA 工程对象模型的访问”选项。

以上是关于在 Excel 中删除宏的所有相关内容。我希望本教程对您有所帮助。如果您想探索更多 Excel 技巧,请点击这里访问我们包含数千篇教程的广泛集合。