Excel工作表突然无法运行VBA代码 - 适用于“某些”其他机器 - 复制工作表工作正常

时间:2015-02-13 10:15:41

标签: excel vba excel-vba corrupt

我的Excel工作簿存在问题。我在模块中嵌入了代码并嵌入了工作表中。

直到最近,一切工作正常但突然间工作表中嵌入的代码无效。

我有一个右键单元格的子例程。这用于创建自己的下拉菜单,而不是标准的右键菜单,但最近它停止工作。我尝试删除整个代码并简单地添加msgbox("Test"),但它仍然不起作用。

启用宏,因为这是有趣的事情......如果我右键单击工作表选项卡并复制它......新版本的工作正常。就好像原始纸张已经腐败一样。

当我尝试手动删除原始工作表(右键单击选项卡并删除)时,可以进一步证明这一点。

这会导致Excel崩溃。

我可以删除任何其他表格没有问题。

然而,我的一位同事打开了工作簿,这对他来说很好,而不必复制工作表。

当它第一次发生时,我做了重复修复,然后将原始文件重命名为“OBSOLETE”。不是一个漂亮的解决方法,但仍然工作。

然而,现在又发生了这种情况,我不愿意继续以这种方式修补它。

如果我尝试使用其他工作表中的VBA来处理工作表:

表2中的代码(“奴隶”):msgbox(sheets("Master").cells(1,1).value)

它出现以下错误:

  

运行时错误32809:应用程序定义的错误或对象定义的错误

我已尝试将其作为sheet1.cells而不是sheets("Master").cells进行处理,这也会产生同样的错误。

将代码更改为指向Sheet3的工作正常。它实际上只是这张表引起了问题。

我也尝试在文档上“打开并修复”。

我已经广泛阅读并尝试删除.exd文件等。没有运气。

有什么想法?它似乎独立于代码 - 更多是这个工作簿及其工作表的特定问题,随着时间的推移变得“腐败”,但仅限于某些机器/用户。

表格中还有一个命令按钮。这也行不通(点击它什么都不做)。如果我进入VBA编辑器并手动激活子例程,我会收到以下错误:

  

编译错误:

     

对象库无效或包含对无法找到的对象定义的引用。

同样,即使我将代码剥离到一个简单的msgbox操作,这仍然会发生。

任何想法都将不胜感激。感谢

1 个答案:

答案 0 :(得分:1)

您好我运行的代码填充了我的工作表上的组合框。似乎正在删除工作表索引,因此工作簿会更长时间“看到”您尝试引用的工作表。

我发现一个简单的解决方法是使用不同的名称重新保存工作簿,它应该可以正常工作,但这在定期运行时并不理想。但它允许您在其他计算机上损坏后恢复原始工作簿。

似乎微软在2014年12月进行的一些安全更新导致在旧机器和新机器上运行工作表的问题。他们意识到了这个问题,并正在努力解决它。这篇博客解释了问题和解决方法: http://blogs.technet.com/b/the_microsoft_excel_support_team_blog/archive/2014/12/11/forms-controls-stop-working-after-december-2014-updates-.aspx

上述博客中提供的解决方案要求所有用户都有此更新,然后从temp文件夹中删除与该问题相关的所有.exd文件,然后重新编译代码(这仍然要求所有机器都有新的更新)。

另一个选项(我将在解决问题之前采取的选项)是在进行更新之前将问题机器回滚到12月之前的版本。

希望有所帮助!