VBA 7.1向后兼容性

时间:2017-11-27 15:22:16

标签: c# excel vba excel-vba

我正在使用VBA 7.1开发一些VBA代码,excel 2016作为大型企业应用程序(主要不在excel中)的一部分。宏从C#应用程序运行,用于以电子表格的形式导出数据。我正在寻找一个很好的指南,指出这些宏将在哪些版本上正常运行,以及我可以在哪里寻找可能导致我的代码中断的更改。我使用excel 2016开发它,这将是如何向后兼容的?

如果可能的话,我想尽可能兼容2010 excel版本。

1 个答案:

答案 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模块后,它会打印VBA6VBA7,具体取决于您的系统。

MSDN - Compiler Constants

通常,VBA7具有64位环境的兼容性。以下是关于这两者之间差异的MSDN文章 - Compatibility between the 32-bit and 64-bit Versions of Office 2010如果您使用嵌入在动态链接库中的外部函数,那么阅读它是一个好主意。