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
我相信还有其他的变化,我可能错过了。 我还没有看到上述的变化,所以我想知道:
哪些网站详细更改,如上面概述的那些?
- 打开Excel 2007并进入VBA编辑器(Alt + F11)
- 打开帮助 (F1)
- 点击新function
- 从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,所以它仍然适用于这些用户。