【问题标题】:How do I remove a custom toolbar from an Excel workbook?如何从 Excel 工作簿中删除自定义工具栏?
【发布时间】:2009-05-06 17:49:48
【问题描述】:

我使用的是 Excel 2007,并且我有一个附有自定义工具栏的 Excel 工作簿。每次我打开工作簿时,工具栏都会出现在“加载项”下的功能区上。我可以右键单击工具栏并选择删除自定义工具栏,然后将其删除。但是当我重新打开工作簿时,它会重新出现。如何永久删除它?

工具栏不是由 VBA 创建的。它使用http://office.microsoft.com/en-us/excel/HP051986401033.aspx 中概述的步骤附加到早期版本的 Excel 中的工作簿中。

【问题讨论】:

    标签: excel toolbar


    【解决方案1】:

    我意识到这是一个老问题,但我刚刚找到了一个此处未提及的简单解决方案,它将对未来的观众有用:

    1. 将文件的扩展名更改为“.zip”
    2. 打开存档
    3. 从存档中删除 Attachedtoolbars.bin 文件
    4. 关闭存档
    5. 将文件的扩展名改回原来的样子

    【讨论】:

    • 我从 XL2003 带来的 PERSONAL.XLS 副本对我有用,谢谢!对于使用 PERSONAL.XLS 执行此操作的任何人,请确保从您的 C:\Users\<UserID>\AppData\Roaming\Microsoft\Excel\XLSTART 目录中删除旧文件(而不是仅仅使用 .old 扩展名重命名它)因为 XL 仍会在启动时打开文件,即使它没有有一个.xls 扩展名。
    【解决方案2】:

    虽然正确的解决方案是从工作簿中分离工具栏,但我不确定在 Excel 2007 中是如何完成的。作为一种解决方法,可以使用宏在每次打开工作簿时删除工具栏:

    Private Sub Workbook_Open()
        ' Delete the unwanted toolbar that is attached to this workbook.
        Dim cmdbar As CommandBar
        For Each cmdbar In Application.CommandBars
            If cmdbar.Name = "Zap" Then
                cmdbar.Delete
            End If
        Next End Sub
    End Sub
    

    【讨论】:

    • 代码找到工具栏,将其删除,但即使我保存工作簿并删除 Excel14.tlb 文件,重新打开工作簿后工具栏又回来了。这就像一成不变的。
    • Application.CommandBars("zap").Delete -simpler 上面的一个衬里,下一个可能需要错误恢复
    【解决方案3】:

    我发现了两种对我有用的方法:

    1. 在 Office 2003 中打开并分离自定义工具栏:工具 > 自定义 > 选项卡工具栏 > 按钮附加... > 删除工作簿中的自定义工具栏

    2. 在 Office 2007 中打开并导出所有对象、表单、模块和类模块,并将它们导入新的新工作簿 (.xlsm) 您将摆脱所有旧垃圾,所有宏仍然有效。

    【讨论】:

    • 这个答案似乎最适合部分问题。我只有 2007 年可供我使用,而我发现从工作簿中删除工具栏的唯一方法是创建一个新工作簿。但是,从您的机器上“永久”删除工具栏需要一些其他工作,其他一些答案涉及到这些工作。
    【解决方案4】:

    如果不是 VBA,您可以进入注册表禁用与工具栏关联的插件。

    【讨论】:

      【解决方案5】:

      您也可以遍历 Excel.Application.CommandBars 中的所有命令栏,并通过其名称找到工具栏,然后将其删除。这是假设工具栏从上一个会话中被卡在那里(并且添加工具栏的工作簿/插件/等没有在 Workbook_Beforeclose 事件中将其删除)

      【讨论】:

        【解决方案6】:

        或者,如果不是在 VBA 中完成,您可以简单地: 右键单击菜单栏区域,单击自定义 在工具栏选项卡中单击附加并确保它未附加到工作簿。

        有时人们会忘记基础知识...

        【讨论】:

        • 虽然这个得票最多,但这个答案似乎无关紧要(而且很刻薄),所以我投了反对票。在 Excel 2007 中,我看不到“右键单击菜单栏区域”的方法。据我所知,菜单栏不见了。我猜这个答案错误地假设 Excel 2003 正在使用中。
        【解决方案7】:

        我在显示自定义工具栏的电子表格中遇到了同样的问题,然后将其留在了我的默认工具栏文件中。

        我找到了这个解决方案: http://support.microsoft.com/kb/291074

        在 Excel 2007 中,要删除的文件是 c:\Winnt\profiles\username\Application Data\Microsoft\Excel\Excel12.xlb

        非常适合我(尽管它会删除您可能已安装的所有自定义工具栏)。

        【讨论】:

          【解决方案8】:

          我知道这个问题很老,但最终对我有用的是进入我的 excel 插件项目的 bin/debug 文件夹并删除所有文件,然后重新加载 Excel。

          【讨论】:

            【解决方案9】:

            在这里查看答案:

            http://msdn.microsoft.com/en-us/library/office/ff862231%28v=office.15%29.aspx

            For Each bar In CommandBars 
                If bar.BuiltIn = False Then 
                    bar.Delete
                End If 
            Next bar 
            

            【讨论】:

              【解决方案10】:

              很可能,工作簿上附加了 VBA 代码,并带有用于创建工具栏的 onLoad 事件。

              您必须删除或禁用 VBA 代码。

              【讨论】:

              • 我删除了所有的 VBA 代码,但我仍然无法删除工具栏。
              【解决方案11】:

              我们的生产 2010 Excel 电子表格中的功能区存在同样的问题,需要更改。自定义功能区需要修改,但它在我们尝试编辑/删除它的每个位置都被锁定。

              右键单击工具栏不起作用,因为“自定义...”选项被禁用。

              删除所有 VBA 代码无效,自定义功能区仍会替换默认功能区。

              在 Excel 选项中,“自定义功能区”控件不包含任何选项或被禁用。

              在查看、工具栏、自定义下的 VBA 窗口中,菜单栏工具栏被锁定以进行编辑。

              我们已尝试按照一些帖子的建议在硬盘上找到文件,但找不到文件(甚至文件夹层次结构也不存在)。

              选项包括编辑注册表或通过导入对象创建全新的文件。

              问题:为什么它们让功能区管理变得如此困难?

              【讨论】:

              • 我认为功能区管理不是问题,而是您的工作场所正在运行的任何事后安全脚本会阻止您访问或以其他方式操作应用程序的原生选项。
              猜你喜欢
              • 2016-06-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-12-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多