2009-06-20 158 views
5

我可以使用訪問2007 VBA引用而不受懲罰(特別是,就基本語言和舊的COM接口而言)爲Access 2003開發基於VBA的解決方案嗎?Office 2003和2007之間的VBA版本有區別嗎?

還是有一些新的/修改後的語法添加到我需要知道的語言?

Office 2007中的對象模型是否已大幅增強?

其他警告?

謝謝。

回答

8

VBA語言本身並未在最新版本的Microsoft Office之間進行更改(並且未來可能也不會改變)。 Access2000以後版本的VBA是VBA6。

然而,Office應用程序的對象模型略有修改。微軟通常只通過附加的方法和屬性來擴展OM。至於訪問而言,我不能給你任何細節,但你會發現這裏修改的列表:

在一般來說,針對某個版本的Office開發的VBA解決方案將使用更新的版本。雖然魔鬼在於細節。由於錯誤修復和新功能,應用程序可能會表現出輕微不同於舊版本。找出所有東西是否仍然有效的唯一方法是徹底的測試。

+0

+1謝謝:)這些鏈接確實很有用。 – 2009-06-20 13:35:36

0

如果您將accdb/mdb編譯爲accde/mde,那麼您需要確保將它們編譯爲與主應用程序相同的版本。 Access 2003中使用Access 2003 MDE的時候遇到了一些麻煩(反之亦然)。

2

有一些新的屬性,方法和對象在Excel 2007

然而,大多數程序在Excel 2003名工作以及在Excel 2007

很少有東西從VBA Excel 2003的不工作在Excel 2007.

我發現了4個問題。

  • 「Chart.Add」給自動化錯誤在Excel 2007中,當有超過1選擇

  • 錯誤不要自行復位,有必要細胞命令之前使用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 
    
  • 像Alt + N鍵幾個快捷鍵在Excel 2007年。 Application.Onkey( 「%N」,「ROTINA 「)在這種情況下不起作用。 現在,ALT + Letra風格中有很多功能區快捷鍵。 我找不到任何方法來抑制此行爲。 應該使用其他熱鍵代替。

+0

恩,可愛的答案是,我沒有看到這個問題與Excel有什麼關係。 – 2010-11-08 22:21:49

相關問題