Страницы: 1
RSS
Запустить макрос для нового csv файла через vbs скрипт
 
Здравствуйте. Каждый день генерируется файл csv с новыми данными. Есть макрос, который выполняет необходимую обработку и прочие действия с файлом. Запускал данный макрос вручную, через alt-f8 и вписыванием названия макроса.

Сейчас хотелось бы автоматизировать этот процесс через планировщик задач Windows написав vbs скрипт. Проблема в том, что он выдает ошибку на то, что не видит исполняемый макрос.

VBS файл.
Код
Call Run_macros

Sub Run_macros()
   set objExcel = CreateObject ("Excel.Application")
   objExcel.Visible = false    
   Op_writ="C:\Users\Andrey\Desktop\Выгрузка\Events.csv"
   objExcel.Workbooks.Open (Op_writ)
   objExcel.run "C:\Users\Andrey\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB!run"
   objExcel.Workbooks("Events.csv").Close(false)
   objExcel.Quit
end sub
Пробовал так:
Код
'objExcel.run "run"
'objExcel.run "PERSONAL.XLSB!run"
Но тоже не работает.
Как можно исправить? Спасибо.
 
Андрей Нечитаев, посмотрите ссылки:
https://www.planetaexcel.ru/techniques/3/6638/
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=135504&...
 
artemkau88, Этим я уже пользовался, есть несколько процессов которые так работают, они запускают файл, в котором уже прописан макрос и в файле обновляются только данные.
Но я не понял, как под данную задачу настроить это, тут же нужно в другом файле запускать макрос из персональной книги (или как-то еще), а файл постоянно удаляется и загружается новый.

То есть если указать путь до книги, где нужно обрабатывать данные, то там нет макроса, а если указывать книгу, где лежит макрос, то как запустить его на нужной книге?
 
Цитата
Андрей Нечитаев, написал:
не видит исполняемый макрос
Возможно его просто нет в книге. Код ниже у меня отрабатывает без ошибок (добавил комментарии)
VBS скрипт запускает макрос macro_ в книге test.xlsb:
Код
Call Run_macros

Sub Run_macros()
   Set objExcel = CreateObject ("Excel.Application")
   objExcel.Visible = True
   Op_writ="C:\Пример\test.xlsb" ' путь поменять на путь к книге с макросом
   Set wb = objExcel.Workbooks.Open(Op_writ)
   objExcel.run "macro_" ' имя макроса
   wb.close False ' закрываем книгу с макросом
   objExcel.Quit
end sub
 
может имеет смысл назвать макрос не "run", а как-то иначе? Использовать в качестве имен процедур и переменных зарезервированные имена не рекомендуется.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Это изменю, просто на первое время так сделал
 
Задачу решил через применение стороннего xlsm файла с макросом, который выполняет его на csv файле, спасибо)
Страницы: 1
Наверх