我知道我可以在VBA中使用条件编译来区分64位和32位版本(使用#If VBA7 Then ...)。
是否也有一个类似于Application.Version的常量构建,以便我可以区分Excel2013/2010/2007/...等在编译时?
另外,是否有可用的现有编译器常量的列表?到目前为止,我找到了VBA7和Win64 (例如,来自this的文章)--但是还有其他的吗?
发布于 2013-01-29 18:53:40
在this link中,您具有以下常量:
VBA6
VBA7
Win64
Win32
Win16
Mac发布于 2021-04-03 03:37:20
不是针对所质疑的版本粒度,但我需要将特定于Office 365/XL16的代码与其前身分开。VBA7向后兼容VBA6,而VBA6对VBA7一无所知。我们可以利用这一点作为我们的优势。
Sub testit()
#If VBA6 And VBA7 Then
Debug.Print "Cool!" 'XL16 vba code
#Else
Debug.Print "Yeah!" 'Not XL16 vba code
#End If
End SubXL14和更低的值将#If视为true/false,XL16作为true/true。如果只是#If VBA7,XL14会尝试编译XL16代码。我不知道为什么,但这就是它的测试方式。
https://stackoverflow.com/questions/14580969
复制相似问题