Автор Тема: Запуск макросов Excel  (Прочитано 512 раз)

Василий и 1 Гость просматривают эту тему.

Онлайн Василий [?]

  • Сообщений: 10
  • Репутация: -1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Запуск макросов Excel
« Создано: Июль 13, 2019, 23:32:33 »
Здравствуйте. нужна ваша помощь. В AutoIt вообще ничего не понимаю .
узнал об AutoIt только из за того, что понадобилось следующее:
- Запущенно сразу 10 копий Excel
- Во всех 10 Excel открыт файл с одинаковым именем Шаблон.
- В папках 1,2,3,4,5,6,7,8,9,10. в каждой папке лежит файл Шаблон.xls.
- В файле Шаблон.xls есть макрос Test
- Из каждой папки я запускаю 1 файл Шаблон.xls на каждую новую копию Excel.
нужно:
- Вот запущенно сразу 10 копий Excel с файлом Шаблон.xls
- Нужно одновременно запустить макрос Test во всех открытых копиях Excel с файлом Шаблон.xls.
Обязательно, чтобы задержки не было, и запуск макроса произошёл мгновенно одновременно во всех копиях Excel

Русское сообщество AutoIt

Запуск макросов Excel
« Отправлен: Июль 13, 2019, 23:32:33 »

Онлайн Василий [?]

  • Сообщений: 10

  • Автор темы
  • Репутация: -1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #1, Отправлен: Июль 15, 2019, 17:54:04 »
Не ужели никто помочь не может?

Оффлайн joiner [?]

  • Расмус-бродяга
  • Локальный модератор
  • *
  • Сообщений: 2963
  • Репутация: 495
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Запуск макросов Excel
« Ответ #2, Отправлен: Июль 15, 2019, 19:05:19 »
Василий
мгновенно не получится. только по очереди.
а ответов нет потому, как вариант, лето, отпуск и прочее. лично я не знаю как это сделать. точнее, мог бы узнать, но нет желания. потому что лето и прочее :)
если очень нужно, то предложи вознаграждение, может кто и откликнется.
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Русское сообщество AutoIt

Re: Запуск макросов Excel
« Ответ #2 Отправлен: Июль 15, 2019, 19:05:19 »

Онлайн Василий [?]

  • Сообщений: 10

  • Автор темы
  • Репутация: -1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #3, Отправлен: Июль 17, 2019, 20:06:42 »
как запустить хотя бы 1 макрос Excel или последовательно 2 и более?

Оффлайн ra4o [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 973
  • Репутация: 177
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #4, Отправлен: Июль 18, 2019, 09:21:44 »
Пробуйте так:
Код: AutoIt [Выделить]
#include <Excel.au3>
Local $oExcel = _Excel_Open()
$oWorkbook=_Excel_BookOpen($oExcel, @ScriptDir & "\Test.xls",False,True)
$oWorkbook.Application.Run("Макрос1")

« Последнее редактирование: Июль 18, 2019, 13:10:52 от ra4o »

Русское сообщество AutoIt

Re: Запуск макросов Excel
« Ответ #4 Отправлен: Июль 18, 2019, 09:21:44 »

Онлайн Василий [?]

  • Сообщений: 10

  • Автор темы
  • Репутация: -1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #5, Отправлен: Июль 18, 2019, 11:32:12 »
А куда этот код вставлять?


я сделал так:
- открыл редактор SciTE.exe
- вставил туда ваш код, немного изменив под себя.
и получилось так, больше ничего кроме этого кода там нет это всё что есть:

#include <Excel.au3>
Local $oExcel = _Excel_Open()
$oWorkbook=_Excel_BookOpen($oExcell, @ScriptDir & "\Шаблон.xlsb",False,True)
$oWorkbook.Application.Run("Test0")


-Потом сохраняю в файл 1.au3.
- Кладу этот файл рядом с файлом Шаблон.xlsb
- Запускаю файл Шаблон.xlsb
- Запускаю двойным нажатием лкм файлик старт.au3
И выдаёт ошибку.
Прикрепил скриншот ошибки
Прикрепил скриншот внутренности файла 1.au(Верно ли там всё или ещё какой то код нужно там добавить?)


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Оффлайн ra4o [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 973
  • Репутация: 177
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #6, Отправлен: Июль 18, 2019, 13:12:44 »
Я ошибся в названии переменной - лишнюю букву написал, исправил в предыдущем сообщении, скопируйте ещё раз.
Запустить можно и прямо из SciTE клавишей "F5"
С Вашими данными:
Код: AutoIt [Выделить]
#include <Excel.au3>
Local $oExcel = _Excel_Open()
$oWorkbook=_Excel_BookOpen($oExcel, @ScriptDir & "\Шаблон.xlsb",False,True)
$oWorkbook.Application.Run("Test0")

« Последнее редактирование: Июль 18, 2019, 13:31:51 от ra4o »

Онлайн Василий [?]

  • Сообщений: 10

  • Автор темы
  • Репутация: -1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #7, Отправлен: Июль 18, 2019, 16:16:29 »
Макрос работал. но не так как мне нужно. я описывал ситуацию, где у меня уже запущен файл Шаблон.xlsb.
А ваш макрос заново его запускает. Мне нужно что бы просто макрос запускался, без запуска макроса. В идеале бы проверку в вашем коде сделать, например: если файл уже открыт, то открывать не надо, или просто вообще не открывать файл, а запускать сразу макрос.

Русское сообщество AutoIt

Re: Запуск макросов Excel
« Ответ #7 Отправлен: Июль 18, 2019, 16:16:29 »

Оффлайн ra4o [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 973
  • Репутация: 177
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #8, Отправлен: Июль 18, 2019, 16:31:29 »
Если книга уже открыта, то попробуйте так:
Код: AutoIt [Выделить]
#include <Excel.au3>
Local $oExcel = _Excel_Open()
$oWorkbook=_Excel_BookAttach(@ScriptDir & "\Шаблон.xlsb")
$oWorkbook.Application.Run("Test0")


Онлайн Василий [?]

  • Сообщений: 10

  • Автор темы
  • Репутация: -1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #9, Отправлен: Июль 18, 2019, 19:59:18 »
Вроде сработал.
Скажите какой код, чтобы запустить не из этой же папки а по пути?
и второе, как запустить одновременно или хотя бы последовательно, но быстро(что бы не дожидаться выполнения макроса), несколько макросов?

Оффлайн ra4o [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 973
  • Репутация: 177
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #10, Отправлен: Июль 18, 2019, 20:32:45 »
Цитировать
чтобы запустить не из этой же папки а по пути?
Код: AutoIt [Выделить]
;Подключаетесь к уже запущенному экземпляру Excel по указанному пути, в данном случае "@ScriptDir & "\Шаблон.xlsb"" - укажите любой другой путь при необходимости
$oWorkbook=_Excel_BookAttach(@ScriptDir & "\Шаблон.xlsb")
;Или открываете любую книгу Excel по любому пути :
$oWorkbook=_Excel_BookOpen($oExcel, @ScriptDir & "\Шаблон.xlsb",False,True)
 

Одновременно не получится , а последовательно - просто запускайте нужные макросы, в чём проблема ("$oWorkbook.Application.Run("Test0")") ?
« Последнее редактирование: Июль 18, 2019, 20:38:00 от ra4o »

Онлайн Василий [?]

  • Сообщений: 10

  • Автор темы
  • Репутация: -1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #11, Отправлен: Июль 18, 2019, 20:38:06 »
я не это имел ввиду. запускать не разные макросы. это конечно в одной книги не возможно.
Я имел ввиду. чтобы запускать один и тот же макрос, но в разных открытых файлах одновременно, или хотя бы последовательно, что бы не ждать выполнение одной процедуры.

Я вот так сделал:
#include <Excel.au3>
Local $oExcel = _Excel_Open()
$oWorkbook=_Excel_BookAttach("g:\Тест\1\Шаблон.xlsb")
$oWorkbook.Application.Run("Test0")
$oWorkbook=_Excel_BookAttach("g:\Тест\2\Шаблон.xlsb")
$oWorkbook.Application.Run("Test0")
 НО! такой вариант запускает последовательно и второй запуск макроса Test0 по пути: "g:\Тест\2\Шаблон.xlsb"
Запускается только если выполнится предыдущий. а мне это не подходит.

Оффлайн ra4o [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 973
  • Репутация: 177
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #12, Отправлен: Июль 18, 2019, 21:01:22 »
Как вариант - для каждой книги написать свой скрипт запуска макроса и отдельным скриптом запускать уже эти скрипты.
В ручную есть возиожность запустить эти макросы не дожидаясь выполнения предыдущего ?

Онлайн Василий [?]

  • Сообщений: 10

  • Автор темы
  • Репутация: -1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #13, Отправлен: Июль 18, 2019, 21:06:44 »
пробовал в ручную для эксперемента. не получается.
первый процесс запускается, макрос выполняется, в трее висит иконка AutoIt. Запускаю второй, в общем уходит в ожидание пока отработается предыдущий, добавляется вторая иконка Autoit в трей, а толку никакого, работает только 1 макрос всё равно, второй ждёт первый, а чаще после окончание первого и второй не запускается. Сырой этот AutoIt в общем, очень слаб.

Оффлайн ra4o [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 973
  • Репутация: 177
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Запуск макросов Excel
« Ответ #14, Отправлен: Вчера в 07:35:53 »
Я имел в виду запуск одновременно нескольких макросов средствами самого Excel , позволяет ?

Русское сообщество AutoIt

Re: Запуск макросов Excel
« Ответ #14 Отправлен: Вчера в 07:35:53 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
13 Ответов
8780 Просмотров
Последний ответ Апрель 08, 2013, 14:25:19
от Денис
2 Ответов
9323 Просмотров
Последний ответ Февраль 21, 2011, 13:55:54
от frazier1979
0 Ответов
3676 Просмотров
Последний ответ Февраль 21, 2011, 14:08:18
от `p r o x y
5 Ответов
4643 Просмотров
Последний ответ Апрель 16, 2012, 10:33:10
от Talany
2 Ответов
3276 Просмотров
Последний ответ Март 07, 2013, 16:52:19
от Spyhunter
3 Ответов
2808 Просмотров
Последний ответ Ноябрь 25, 2013, 21:06:52
от WSWR
7 Ответов
4153 Просмотров
Последний ответ Март 19, 2014, 20:58:08
от eus_deus
1 Ответов
2317 Просмотров
Последний ответ Декабрь 21, 2015, 17:25:49
от ra4o
4 Ответов
1393 Просмотров
Последний ответ Июль 26, 2017, 17:04:13
от Feonaru
0 Ответов
100 Просмотров
Последний ответ Июль 14, 2019, 07:59:05
от joiner