Office 2003和2007之间的VBA版本有区别吗?

时间:2009-06-20 13:02:56

标签: ms-access vba ms-office

我是否可以使用访问2007 VBA引用而不受惩罚(具体而言,就基本语言和旧的com接口而言)为Access 2003开发基于VBA的解决方案?

或者是否有一些新的/修改过的语法添加到我需要注意的语言中?

在2007年的办公室中,对象模型是否得到了大幅提升?

还有其他警告吗?

谢谢。

3 个答案:

答案 0 :(得分:8)

在最新版本的Microsoft Office之间,VBA语言本身并未发生变化(未来可能不会发生变化)。从Access2000开始的VBA版本是VBA6。

然而,Office应用程序的对象模型稍有修改。 Microsoft通常只通过其他方法和属性扩展OM。就Access而言,我无法向您提供任何详细信息,但您可以在此处找到修改列表:

  

通常,针对特定版本的Office开发的VBA解决方案将使用较新版本。魔鬼虽然在于细节。由于错误修复和新功能,应用程序可能表现出与旧版本不同的轻微。找出一切是否仍然有效的唯一方法是详尽的测试。

答案 1 :(得分:2)

Excel 2007中有一些新的属性,方法和对象。

但是,Excel 2003中的大多数程序在Excel 2007中运行良好

VBA Excel 2003中的一些东西在Excel 2007中不起作用。

我发现了4个问题。

  • “Chart.Add”在选择了多个单元格时在Excel 2007中出现自动化错误

  • 错误不会自行重置,必须在命令之前使用Err.clear 发布错误。

            On Error Resume Next
            Intruction_That_Could_be_buggy_1
            if Err.Number <>0 Then
                 Err.Clear     '  <<<<==== This command is necessary
                 Intruction_That_Could_be_buggy_2                  
                 if Err.Number <>0 Then
                       ....
    
  • 范围(...)。当存在可能的名称冲突时,粘贴(xlFormulas)现在停止 有必要使用

        Application.displayalerts = False
        Range(....).Paste(xlFormulas)
        Application.displayalerts = True
    
  • Excel 2007中保留了Alt + N等几个热键。 Application.Onkey(“%n”,“rotina”)在这种情况下不起作用。 现在它是ALT + Letra风格的许多功能区快捷方式。 我找不到任何方法来抑制这种行为。 它应该用于其他热键。

答案 2 :(得分:0)

如果要将accdb / mdb编译为accde / mde,则需要确保将它们编译为与主应用程序相同的版本。我在Access 2007中使用Access 2003 MDE时遇到了一些麻烦(显然反之亦然)。