新版Excel中的VBA

这是我父亲的一个问题。 他在Excel中使用VBA已经超过二十年了,直到现在他正在使用Excel 2002。

由于他已经在Excel中使用了VBA这么长时间,广泛使用了loggingmacros的能力,所以他继续投资于Excel,因为它在每个版本中都相当稳定(就VBAfunction而言)。 现在,他正在考虑升级到更新版本的Excel,但是我已经阅读了微软在Excel 2007中完全篡改了他们的VBA解释器的评论,因为以前在Excel 2003或更早版本中工作的脚本会变得非常缓慢或完全停止运行。 然后看着Excel 2010,我已经读了很多Excel 2007的问题“还没有解决”。 由于我不确定这些评论的可信度,所以我已经阅读了这个问题。对于那些目前在Excel中大量使用VBA的人来说:

对于那些在Excel 2002或更早版本中花费大量时间和精力投入VBA工作的人来说,将其升级到Excel 2003,2007或2010是否明智?

Excel 2007 VBA有几个性能问题。 其中很多已在Excel 2007 SP1中修复。 图表和形状也有一些macroslogging器问题。

我个人的build议是Excel 2010:VBA性能和Macrologging问题已经修复,我发现Excel 2010的整体稳定性要优于最新版本(但是YMMV)。

从Excel 2002迁移到2007或2010将涉及学习使用function区:有些人喜欢它,有些人讨厌它,但是肯定需要为长期的Excel用户付出努力。 请注意,VBA IDE没有改变。

如果您的父亲在迁移到Excel 97后幸存下来,那么切换到2007年或2010年将感觉像是一个蛋糕。 除了新的GUI之外,变化是更好的变化。 我没有遇到任何兼容性问题,包括从97年到2003年的大跃进。

为了得到最新的信息,我build议John Green等人的Excel 2007 VBA程序员参考。

我在Excel 2003中开发的大部分VBA / Excel程序在2007年工作得很好,没有修改就更新(似乎我记得大多数问题是与图表有关的)。 当然,至less有一些录制的macros或手工编码的VBA在Excel 2007及更新的版本中可能不起作用。 然而,通过一些debugging,旧代码很可能会被转换,而不会有太多头痛的问题(search错误的那一行,您可能会发现如何重写该行)。

有免费的加载项,如UBitMenu和其他人带回旧式菜单菜单。

我今年早些时候为Excel VBA编写了一个基准testing,其中包含6个不同的性能testing。 到目前为止,373人提交的结果清楚地表明,2007年的Excel是所有版本中速度最慢的。 在Excel 2003,2007,2003,2002中,Excel 2010在大多数testing中performance最好,其次是Excel 2003。在2010年到2003年间,复合结果非常接近,但单个基准testing显示Excel 2003在显示数据上速度更快而基于复杂的VBA计算,2010年更快。 基准testing的完整结果位于http://exceltrader.net/et2/benchMark.php