我正在使用VBA 7.1开发一些VBA代码,excel 2016作为大型企业应用程序(主要不在excel中)的一部分。宏从C#应用程序运行,用于以电子表格的形式导出数据。我正在寻找一个很好的指南,指出这些宏将在哪些版本上正常运行,以及我可以在哪里寻找可能导致我的代码中断的更改。我使用excel 2016开发它,这将是如何向后兼容的?
如果可能的话,我想尽可能兼容2010 excel版本。
答案 0 :(得分:0)
如果您需要与VBA6和VBA7兼容,这是如何通过编译器常量实现它的一个很好的示例:
Option Explicit
#If VBA6 Then
Sub RunTheApp()
Debug.Print "VBA6"
End Sub
#ElseIf VBA7 Then
Sub RunTheApp()
Debug.Print "VBA7"
End Sub
#Else
Sub RunTheApp()
Debug.Print "You cannot come here from TestMe()"
End Sub
#End If
Sub TestMe()
RunTheApp
End Sub
尝试运行TestMe
模块后,它会打印VBA6
或VBA7
,具体取决于您的系统。
通常,VBA7具有64位环境的兼容性。以下是关于这两者之间差异的MSDN文章 - Compatibility between the 32-bit and 64-bit Versions of Office 2010如果您使用嵌入在动态链接库中的外部函数,那么阅读它是一个好主意。