【问题标题】:Excel 2007-VBA, Right Click ButtonsExcel 2007-VBA,右键单击按钮
【发布时间】:2012-12-19 16:27:02
【问题描述】:

我遇到了一个奇怪的 Excel 2007 问题,我不太清楚如何解释。所以请多多包涵……

我创建了几个右键单击按钮来调用我编写的各种后端 VBA 函数。他们今天早些时候工作正常,现在由于某种原因,出现了一个按钮,该按钮不是来自我的工作表中的代码。当您单击它时,它会尝试打开另一个工作表并从中执行代码。这两个文件不在同一个目录中,也没有类似的名称。我删除了按钮试图从中执行的文件,现在它只是给我一个错误 400。

所以,我无法弄清楚这一点,并且已经删除了该文件后端中的每一段代码,但按钮仍然出现。有什么想法可能导致这种情况吗?似乎它可能混合文件或在临时目录中的某处保存副本并尝试访问它而不是在 VBA 中编写的实际代码。我需要清除缓存吗?

我知道我没有很好地描述这一点,所以我很乐意提供您可能需要的任何和所有其他详细信息。让我知道发生了什么。

编辑 #1 -- 新信息 == 我什至可以打开一个新的、完全空白的 excel 文件,并且右键单击按钮仍然存在。

编辑 #2 -- 尝试诊断 == 我刚刚尝试运行 Excel 诊断程序,它没有发现任何问题。奇怪的是,好像这个宏不知何故变成了全局或存储在某种类型的缓存或其他东西中。

【问题讨论】:

  • 您是否查看了 2007 年的基本模板?听起来您几乎像是受到了攻击或病毒的袭击。
  • 我认为这不是问题所在。出现的按钮是我为完全不同的 Excel 文件编写的。它试图打开的文件是我创建的文件。就基本模板而言,我从来没有弄乱过它,它会位于哪里?
  • 如果您使用 Alt+F11 打开 VBA 编辑器,您应该会在左侧看到项目列表。如果那里有全局添加的项目,您应该在那里看到它们以及当前工作簿的项目。我敢打赌,您的按钮代码是在全球范围内添加的。
  • 我查了一下,拥有全局或“个人”宏的项目是 PERSONAL.XLSB。如果您在此处添加了宏,它将在所有页面中可用。
  • 是的,我知道个人文件,但它们都没有出现。就像我说的编辑我的上述描述。我可以在后端打开一个全新的、从未接触过的、没有任何代码的,并且按钮仍然出现。我什至进入 VBA 编辑器并确认这个项目是唯一的,那里没有 PERSONAL.XLSB。根本没有代码。当您右键单击该按钮时,仍然会出现。这是迄今为止我遇到过的最奇怪、最难诊断的问题。

标签: excel excel-2007 vba


【解决方案1】:

希望我能正确理解您的问题。

如果您知道该按钮出现在哪些右键单击(上下文)菜单中,您应该能够使用Reset 命令修复它们。例如,如果它出现在 Cell 上下文菜单中,您可以在 VBE 的即时窗口中尝试:

Application.Commandbars("Cell").Reset

这会将整个菜单重置为其默认状态。

另外,您可能对我编写的工具MenuRighter 感兴趣,该工具可让您调整右键菜单。它还有一个设置可以显示任何上下文菜单的标题和 ID。

【讨论】:

  • 在我的原始脚本中,我使用的是该命令。然而,问题是即使在一个全新的、从未编辑过的 .xlsm 文件中,即使项目中没有创建它的代码,右键菜单仍然会出现。
  • 我误读了您的部分回复。通过在即时窗口中运行该命令。它解决了这个问题。再次感谢。这让我在早上的大部分时间都在挠头。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-25
相关资源
最近更新 更多