[英]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
),而.XLSM
是OOXML格式。
請參閱何時應使用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.