2015-01-26 5 views
0

Я не могу запустить Excel для Macintosh, но поскольку постоянная VBA7 компилятора Excel VBA была представлена ​​с Excel (для Windows) 2010, я полагал, что это применимо и к Mac Excel 2011.Excel VBA Константы компилятора: Mac Excel 2011 <> VBA7?

Однако, по-видимому, этот код компилирует «Else» раздел (предназначенный для Excel 2007) при запуске на Mac Excel 2011:

#If VBA7 Then 
    'Set constants here for Excel 2010 or later: 
#Else 
    'Set constants here for Excel 2007 or earlier: 
#End If 

Так, чтобы заставить его работать для пользователя, который находится на Mac Excel 2011 , я должен был изменить его к этому:

#If VBA7 Or Mac Then 
    'Set constants here for Excel for Windows 2010 or later, or Excel for Mac: 
#Else 
    'Set constants here for Excel for Windows 2007 or earlier: 
#End If 

ли Mac Excel 2011 действительно не имеют VBA7, или это просто упущение константы компилятора?

ответ

1

В Excel для Mac по-прежнему используется VBA 6.5, поэтому константа VBA7 не существует. Это все еще имеет место в Excel Mac 2016 по адресу v15.11 (150609).

Если вы действительно хотите, чтобы различать между хост-версии Excel Application, то вы должны использовать Application.Version:

Где:

5 = Excel 5 
6 = Excel 6 
7 = Excel 95 
8 = Excel 97 
9 = Excel 2000 
10 = Excel 2002 
11 = Excel 2003 
12 = Excel 2007 
14 = Excel 2010 and Excel Mac 2011 
15 = Excel 2013 and Excel Mac 2016 

Если вы хотите среды версии VBA вы можете использовать: -

Application.VBE.Version 
Смежные вопросы