0
Отвечен

Запуск макроса в книге Excel из скрипта

Игорь Шалдин 3 года назад в Прочее обновлен Гашков Николай (Эксперт) 3 года назад 12

Здравствуйте.

Добавил в шаблон свода по НУ макрос, меняющий поставочную форму на нужную клиенту. Подходящего Exel-события для автоматического запуска этого макроса не нашел. Можно ли как-то запустить макрос из EXCELSV.S

+1
На рассмотрении

Попробуйте _XlsObj.Run("имя_макроса");

Ни чего не получилось. Ну или может не туда вставлял... Скрипт-то большой...

Если бы был пример вашего кода, у нас было бы больше шансов помочь.

Код стандартный - поставочный ..\SCRIPT\SVOD\EXCELSV.S

Имя макроса - Svod. Сам макрос находится в шаблоне ..\ZPL\TABLSVD\extsvod.xlt

патч с примером.zip

1)В шаблон добавил макрос, который в ячейку B1 выводит строку "11"

2)В поставочный скрипт добавил строку 

_XlsObj.Run("Makros11");

3)Получил свод

З.ы. макросы зло - лучше поправить поставочный скрипт ( сортировку сделать скриптом)

Сортировка - это 1/100 того что нужно сделать. На самом деле надо ещё сгруппировать начисления и удержания по статьям затрат, подвести по ним итоги, подвести итоги по статьям затрат в разных разрезах... и т.д. и т.п.

Кажется, что это все легко делается через "сводные таблицы".

2)В поставочный скрипт добавил строку  _XlsObj.Run("Makros11");

Совсем не то. 

Макрос должен обрабатывать данные на уже заполненном листе. Ну т.е. _XlsObj.Run("Makros11"); куда-то в другое место, туда, где скрипт уже заполнил лист.

-1

Что значит не то :)?

Задача была продемонстрировать что макрос запускается


Вы то куда воткнули запуск макроса? От вас же просили исходники..

Задача была продемонстрировать что макрос запускается

Спасибо за "демонстрацию", конечно... Но меня интересовало:

1. Как из скрипта вызвать запуск макроса. На этот вопрос ответил Андрей, за что огромное ему спасибо.

2. Куда именно в EXCELSV.S надо вставить _XlsObj.Run("имя_макроса");, чтобы макрос запускался после заполнения листа.

Вы то куда воткнули запуск макроса?

Если бы я знал куда воткнуть запуск макроса, вопроса бы не задавал.

Тему можно закрывать, разобрался сам.

Спасибо за "демонстрацию", конечно... Но меня интересовало:

Значит вы плохо сформулировали вопрос, экстрасенсов тут нет...

Ни чего не получилось. Ну или может не туда вставлял... Скрипт-то большой...

Я понял ваш ответ так, что макрос у вас не запустился от слова совсем.

Я бы примерно так сформулировал вопрос:

В какую строку скрипта нужно добавить метод Run(), чтобы он выполнился после заполнения свода?  

Сервис поддержки клиентов работает на платформе UserEcho