Задать вопрос

Можно ли узнать, в каком офисном пакете открыта таблица и запустить соответствующий макрос?

Суть такова: есть некая таблица, которая может быть открыта на рабочем ноутбуке в Excel, а на личном - в LibreOffice Calc. На определённом этапе развития таблицы возникла необходимость автоматического подсчёта количества ячеек, залитых цветом. В Excel на VBA была написана соответствующая функция и всё считается, но в LibreOffice эта функция, естественно, не работает.
Мне необходимо написать такую же функцию на LibreOffice BASIC (с этим я справлюсь, думаю). Но как на этапе открытия файла узнать, в каком именно пакете открывается эта таблица, и в зависимости от этого запустить соответствующий вариант функции?
  • Вопрос задан
  • 124 просмотра
Подписаться 3 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 2
If Application.Name = "Microsoft Excel" then

else

end if

Думаю, как-то так
Ответ написан
honor8
@honor8
Принципы быстродействия VBA в описании
Функция только усложняет решение задачи.
Фильтр по цвету (в Excel), количество записей будет указано в строке состояния.

UPD1: Попробуйте для Libre Office указать следующие настройки модуля:
Option VBASupport 1
Option Compatible

UPD2: https://help.libreoffice.org/latest/ru/text/shared...

UPD3: Объектная модель другая. https://github.com/fahri314/macro-converter Объекты нужно выносить в отдельные переменные. В одном документе для двух приложений работать не будет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы