从Excel 2010升级到2013时出现问题

在Excel 2010中,我一直在使用仪表板,过去的几个月里,我们升级到Excel 2013时,已经接近完成。我遇到了一个问题,我完全被困在…

我使用每张纸的前几行为仪表板构build了一个简单的用户界面。 实际上,每个子菜单都隐藏在不同的行中,并且随时只能看到适当的行。 也允许用户在不使用用户表单的情况下打开/closures不同的菜单。

在升级到2013之前,它非常灵活和快速响应,每次在用户界面中进行更改时,大约需要0.05秒。 但是,迁移到Excel 2013后,UI非常缓慢。 起初,我认为这是一个屏幕更新的问题,因为屏幕是在零碎更新 – 标签,隐藏的行,背景颜色等将成块,而不是一次。 我认为这是一个可能性。

我也尝试禁用所有2013年出炉的令人讨厌的新animation。我尝试了所有我在网上看到的不同的方法 – 禁用硬件graphics加速,closures不必要的animation,以方便访问中心等。似乎没有效果。

经过一整天的故障排除之后,我发现只有用户界面的工作表,没有别的运行就像以前一样快。 只有在工作表上有对象时才会出错。 据我所知,形状和文本框似乎对性能没有影响。 标签,forms控制和Active X,似乎是罪魁祸首。

我已经注意到,我用于UI的一小部分代码继续以相同的速度运行,但是即使在过程运行之后,屏幕仍将继续改变。 这也使我困惑。 我已经尝试改变移动和大小与细胞的财产自由浮动,似乎也没有任何区别。 我也尝试改变像打印对象,locking等

我完全不知道如何解决这个问题。 这绝对是2013年特有的东西,因为在2010年,完全相同的文件运行没有问题。如果有人有任何build议,他们将不胜感激。

更新:这是一个示例文件的链接,突出显示问题。 在2010年进行testing时,两者都很好。

https://www.dropbox.com/s/r2ep5bgyn6ohjph/2013%20Issue.xlsm?dl=0

当然,这是一个延伸,但一点研究告诉我,Excel 2013已经遭受了许多ActiveX控件的问题。 有几个微软发布的补丁,所以我build议你先安装它们,并确保你的Excel 2013的副本是完全最新的。

https://support.microsoft.com/en-us/kb/3025036

https://support.microsoft.com/en-us/kb/2956145

如果这不能解决问题,请让我知道,我将删除这个答案。

所有,谢谢你的帮助。 我终于解决了我遇到的问题。 我将问题隔离到代码运行时可见的窗体控件或ActiveX控件。 我不知道为什么,但任何一方的存在都会造成问题。 但是,在运行代码之前隐藏所有形状,然后在解决问题之后取消隐藏它们。 但是我注意到,这个解决scheme只有在代码在执行之前不closures屏幕更新的情况下才有效。 稍后当我有权访问Dropbox时,我将发布更新的文件。