簡體   English   中英

在為XLS,XLSX和XLSM編寫的宏之間是否存在兼容性問題?

[英]Is there a compatibility issue between macros written for XLS, XLSX and XLSM?

在為XLS,XLSX和XLSM編寫的宏之間是否存在兼容性問題? 相同的宏是否適用於所有工作簿?

這些格式之間存在顯着差異:

  • .XLS旨在用於Excel 2003及更高版本,因此您的VBA代碼需要向后兼容早期版本的Excel(<2007)
  • .XLSX無法存儲VBA代碼的Excel 2007格式。
  • .XLSM.XLSB是Excel 2007格式,允許您使用工作簿保存VBA代碼 正如Sydenam所說,這兩者之間的區別在於工作簿的存儲方式。

簡而言之: .XLSB二進制格式 (相當於2007+版本的.XLS ),而.XLSMOOXML格式。

請參閱何時應使用xlsm或xlsb格式? 欲獲得更多信息。


向后兼容的附錄

我看不出任何簡單的方法告訴你它如何向后兼容,我們不能那么通用。 您可以在Ozgrid上看到Excel 2007中添加的新方法和屬性。您還可以在此處找到有關如何在Excel 2007上進行開發的一些提示。

Ozgrid頁面將為您提供Excel 2007的新元素 ,然后將告訴您如果要向后兼容,則不應使用的內容。

有關Excel 2003中不可用的方法列表,請參閱JMax的響應。

通常,您應該為您願意支持的最低版本的Excel編寫代碼。 例如:如果您支持Excel 2000-2010,則應為Excel 2000編寫代碼。

但請記住,在以后的版本中可能會棄用某些方法。

例如,我將完全避免使用FileSearch (在Excel 2007中棄用)並使用Dir

您的代碼還應該測試本地Excel版本並根據版本使用條件編譯。

有關條件編譯的幫助,請參閱使用條件編譯

還要記住,XLSX文件無法保存宏。 因此,如果文件包含宏代碼,則不應以此格式保存文件。

Excel使用Visual Basic for Applications(VBA)作為宏。 不同文件類型之間的主要區別在於數據的存儲方式( 編輯和重要的 XLSX無法保存宏,XLSM和XLS中的格式可以保存工作簿中的宏)。 處理宏的是excel和VBA,因此它們在所有這三種文件格式之間都沒有問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM