在Win 7 64位上运行Excel 2010。
我在处理一个非常大的应用程序时遇到了这个问题,并且很难通过文本解释,但我会尽我所能。我最初的想法是我的工作簿已经损坏,但是在一两天之后我发现事实并非如此,并最终设法深入到我可以复制的场景。
为了证明这个问题:
1 - 创建一个新工作簿(Book1)
2 - 将代码添加到常规模块
3 - 添加2个命名公式。
4 - 向表单1添加表单按钮,并将其分配给宏CloseMe
5 - 另存为Book1.xlsb
。
Sub CloseMe()
ThisWorkbook.Close False
End Sub
aaaa = Sheet1!$A$1
bbbb = OFFSET(Sheet1!aaaa,0,0,5,1)
此演示需要同时打开2个工作簿,因此请打开第2个工作簿。激活Book1。
如果您可以在没有错误的情况下执行步骤3十次或更多次,则编辑名称“aaaa”并将名称更改为其他名称(“mmmm”),然后保存
现在,在步骤3的大约3次迭代之后,Excel崩溃了,我收到消息“Microsoft Excel已停止工作”等等
奇怪的是,如果我将公式bbbb
更改为单元格引用,例如bbbb = OFFSET(Sheet1!$A$1,0,0,5,1)
,问题就会消失。此外,同一文件的xls
或xlsm
版本也没有问题。
我尝试了什么:
所以此时它似乎是Excel 2010 xlsb的一个问题。我已经苦苦挣扎了一个多星期,但还没有提出解决方案/解决方案。任何建议都是最受欢迎的。
几天后:更正了几个拼写错误,还发现在打开/关闭大约3个周期后,公式bbbb
值现在为空,或者包含垃圾数据。然后关闭将导致Excel崩溃。