powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверить какой версией Excel открывается файл и не выполнять код если ...
8 сообщений из 8, страница 1 из 1
Проверить какой версией Excel открывается файл и не выполнять код если ...
    #39226884
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Коротко об случившемся.
Я сегодня, такой веселый и крутой, добавил в существующий в офисе макрос обновления. Теперь когда макрос создает таблицу с данными он делает из нее "умную таблицу" и вставляет срезы (фильтры).

А теперь я задумался, не у всех есть Excel 2010, в более ранних версиях их вообще нет. Удалять жалко...

Вопрос вот в чем, моно ли VBA определить версию Excel и если она более ранняя чем 2010, то блок кода создания умной таблицы со срезами попросту не выполнять, пропускать.

Прикрепляю файл - пример.
...
Рейтинг: 0 / 0
Проверить какой версией Excel открывается файл и не выполнять код если ...
    #39226907
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lopuxi,

Application.Version не подойдет? 14.0 - это 2010.
...
Рейтинг: 0 / 0
Проверить какой версией Excel открывается файл и не выполнять код если ...
    #39226909
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lopuxi,

Спасибо разобрался.
Application.Version - Позволяет определить версию

Номера версий
8 = "Microsoft Excel 20-го века"
9 = "Microsoft Excel 2000"
10 = "Microsoft Excel 2002"
11 = "Microsoft Excel 2003"
12 = "Microsoft Excel 2007"
14 = "Microsoft Excel 2010"
15 = "Microsoft Excel 2013"
16 = "Microsoft Excel 2016"

Всем спс))
...
Рейтинг: 0 / 0
Проверить какой версией Excel открывается файл и не выполнять код если ...
    #39226910
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,

ДА!) это как раз оно. Я тоже нашел информацию.
...
Рейтинг: 0 / 0
Проверить какой версией Excel открывается файл и не выполнять код если ...
    #39226999
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,

Но есть одна беда.
Я про тестил на Excel 2007 и он у меня ругается на

---------------------------
Microsoft Visual Basic
---------------------------
Compile error:

User-defined type not defined
---------------------------
ОК Справка
---------------------------


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
If Val(Application.Version) >= 14 Then 'условие проверки верссии. Если версия младе 2010 то не выполнять условие кода
'создание умной таблицы
WS2.ListObjects.Add(xlSrcRange, Range(Cells(1, 1), Cells(Sheet2_iRow - 1, 10)), , xlYes).Name = "Таблица1"

Dim mySC As SlicerCaches ' <= ругается на этом месте
Dim mySlicers As Slicers
Dim mySlicer As Slicer

Set mySC = ActiveWorkbook.SlicerCaches
Set mySlicers = mySC.Add(ActiveSheet.ListObjects("Таблица1"), "Город").Slicers
Set mySlicer = mySlicers.Add(ActiveSheet, , "Город", "Город", 70, 810, 160, 100)

End If



как быть?
...
Рейтинг: 0 / 0
Проверить какой версией Excel открывается файл и не выполнять код если ...
    #39227191
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю подойдет условная компиляция, например
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
#If VBA7 Then
  Sub x()
    MsgBox "y"
  End Sub
#Else
  Sub x()
    MsgBox "x"
  End Sub
#End If
...
Рейтинг: 0 / 0
Проверить какой версией Excel открывается файл и не выполнять код если ...
    #39227230
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lopuxi,

попробуйте не использовать именно встроенный тип объектов, а объявите либо As Variant, либо As Object:
Код: vbnet
1.
2.
3.
Dim mySC As Object' <= ругается на этом месте
Dim mySlicers As Object
Dim mySlicer As Object
...
Рейтинг: 0 / 0
Проверить какой версией Excel открывается файл и не выполнять код если ...
    #39227249
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,

Попробуем, спасибо
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверить какой версией Excel открывается файл и не выполнять код если ...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]