VBA更改Excel 2002 – > Excel 2007

在哪里可以find从Excel XP(2002)到Excel 2007的VBA更改的完整列表? 我有一本工作手册,很大程度上依赖于2002年我一直在研究的VBA,当我在2007年打开它时,我注意到有些事情已经改变了。 例如,我的工作簿做了很多3d旋转; 我发现Shape.ThreeD.RotationX已经变成了Shape.ThreeD.RotationY ,反之亦然。 我也发现,我必须否定旋转值,所以

 Shape.ThreeD.RotationX = 90 

 Shape.ThreeD.RotationY = -90 

我相信还有其他的变化,我可能错过了。 我还没有看到上述的变化,所以我想知道:

哪些网站详细更改,如上面概述的那些?

  1. 打开Excel 2007并进入VBA编辑器(Alt + F11)
  2. 打开帮助 (F1)
  3. 点击新function
  4. 从Microsoft Office XP(2002)开始单击对象模型更改

瞧!

这个清单是相当全面的,也是互动的,所以我不会在这里重现。 但自97年,2000年和2003年以来,它也有所变化。

以下是我目前注意到的一些变化:

 Shape.ThreeD.RotationX = 90 

已经成为

 Shape.ThreeD.RotationY = -90 

(即X轴和Y轴在自动方形上已经交换了3d旋转,而沿着这些轴的正方向和负方向则相反)。

Excel似乎再也无法兑现了

 Shape.ThreeD.ExtrusionColorType = msoExtrusionColorAutomatic 

指令(它只是给了一个黑色的挤压,至less在我的testing)。

三维形状现在必须明确地设置它们的照明方向,例如

 Shape.ThreeD.PresetLightingDirection = msoLightingRight 

而以前这似乎没有必要。

这些只是我迄今发现的一些事情。 我相信还有更多 – 我会添加他们(我会尝试把这个答案与自动形状有关的东西,并将其他更改/问题在单独的答案,使其更容易浏览)。

如果你有使用的代码

 Application.ScreenUpdating = False 

要加速自己,你必须明确地打电话

 Application.ScreenUpdating = True 

在显示一个MsgBox或InputBox之前,如果你想要在屏幕上显示更改(而2002会在显示任何对话框之前总是刷新屏幕)。

根据我的经验,您可以尝试根据不完整的“详尽”列表进行更改,但是您仍然需要testing代码,看看哪些function不符合您的期望。 在做了一些修改之后,它在2007年就可以运行了,你还需要在原始版本中进行testing,所以它仍然适用于这些用户。