VBA如何变更从Excel 2002到Excel 2007?

5
哪里可以找到从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 XP中VBA的“完整”列表,我们就可以将其与Excel 2007中不完整的VBA列表进行比较。 - JeffO
很抱歉,我不知道如何回答你的问题,但根据我的有限经验,相比之前的版本,Excel VBA在2007年的功能非常不稳定。有些东西即使你录制宏并重放也无法实现。 - Benjol
3个回答

4
  1. 打开Excel 2007并进入VBA编辑器(Alt+F11)
  2. 打开帮助(F1)
  3. 点击新功能
  4. 点击自Microsoft Office XP(2002)以来的对象模型更改

大功告成!

这个列表相当全面且互动性强,因此我不会在这里重复它。但它也包括自97、2000和2003版以来的更改。


我看过MSDN上的那个列表,但它并不完整。它没有列出问题中概述的更改,因此我不能确定它是否列出了所有其他更改。 - a_m0d

0

这是我目前注意到的一些更改:

Shape.ThreeD.RotationX = 90

已经成为

Shape.ThreeD.RotationY = -90
(即自动形状的三维旋转中,X轴和Y轴已经交换,并且沿这些轴的正/负方向相反)。 Excel似乎不再遵守

Shape.ThreeD.ExtrusionColorType = msoExtrusionColorAutomatic

指令(在我的测试中只会产生黑色挤出物)。

现在必须显式地设置三维形状的光照方向,例如:

Shape.ThreeD.PresetLightingDirection = msoLightingRight

而以前似乎不需要这样做。

这些只是我迄今为止发现的一些事情。我相信还有很多 - 我会在发现它们时添加它们(我会尝试将与自动形状相关的内容放在此答案中,并将其他更改/问题分组在单独的答案中,以便更轻松地浏览)。

如果您有使用代码的情况

Application.ScreenUpdating = False

为了加快速度,你必须显式地调用

Application.ScreenUpdating = True

如果您希望更改在屏幕上显示(而2002年版本则始终在显示任何对话框之前刷新屏幕),请在显示MsgBox或InputBox之前执行操作。


0
根据我的经验,你可以尝试基于一个不完整的“详尽”列表进行更改,但你仍然需要测试代码并查看哪些部分不符合预期。在使其适用于2007年之后,你还需要测试原始版本,以便对那些用户仍然有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接