Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Запуск макроса в другой сессии Excel, одновременный (параллельный) запуск нескольких сессий Excel или макросов
 
Развивая мысль, без встраивания кода Auto_Open в структуру файла, посылаем команды клавиш в Excel:

Код
Dim Imitate As String
Imitate = Shell("excel.exe c:\book1.xlsm", 1) ' 1 = vbNormalFocus, в видимом режиме
Application.Wait Now + TimeSerial(0, 0, 20) ' ждем 20 сек, пока открывается Excel
SendKeys "%{F8}", True    ' Имитируем нажатие ALT+F8
Application.Wait Now + TimeSerial(0, 0, 1)
SendKeys "{ENTER 2}", True

Тут стоит оговориться, что будет исполнен 1й макрос в книге.

Или может можно как-то из под Shell макрос запустить? Что-нибудь типа:
Код
shell "excel.exe c:\book1.xlsm" & запуск макроса "название макроса"
Изменено: psevdonim - 22.12.2016 17:47:47
Запуск макроса в другой сессии Excel, одновременный (параллельный) запуск нескольких сессий Excel или макросов
 
Казанский, да, действительно, все гениальное просто. Про vbs - наверное нет смысла, потому что удобнее через первую сессию Excel отслеживать, но мысль интересная, попробую. Спасибо большое!

Для тех, кто не понял:
В исполняющий файл добавляем макрос
Код
sub auto_otkr()
shell "excel.exe c:\book1.xlsm" 'путь к файлу
end sub

А в исполняемый файл или в код книги "Этакнига" вставить Private Sub Auto_Open() и вызов нужного макроса через Call, либо просто переименовать исполняемый макрос в Sub Auto_Open()
Запуск макроса в другой сессии Excel, одновременный (параллельный) запуск нескольких сессий Excel или макросов
 
Добрый день! Подскажите, пожалуйста, как решить следующую проблему. Я работаю в книге, при этом мне нужно с разной периодичностью или одновременно(параллельно) запустить несколько макросов в других книгах. Понимаю, что можно сделать это каждый раз открывая нужную книгу и запускать соответствующий макрос. Либо запускать макросы последовательно - но это не то, нужна экономия времени. Т.е. хочу автоматизировать.
По автоматизации делаю следующее, например, - запускаю Excel как объект, открываю в нем нужную книгу и вручную запускаю макрос, тогда можно работать параллельно - так сказать полуавтомат.
Что не получается? - Запустить макрос в новой книге автоматически "правильно", он подвешивает и первую книгу, а мне в ней работать.

Пробовал следующие алгоритмы решения:
1. Через Object:
Код
Dim oXL As Object, wb As Object
Set oXL = CreateObject("Excel.Application")
oXL.Visible = True
Set wb = oXL.workbooks.Open("C:\book1.xlsm")
oXL.Run "A_macro"
'Application.Run ("'" & wb.Path & "\" & wb.Name & "'" & "!" & "A_macro")
Set oXL = Nothing

Пробовал 2 варианта запуска макроса.

2. Через Application, с проверкой создания:
Код
Dim aXL As Excel.Application
Set aXL = New Excel.Application
aXL.Visible = True
aXL.workbooks.Open "c:\book1.xlsm"
aXL.Run "A_macro"
'Application.Run ("c:\book1.xlsm!A_macro")


3. Через with, ну мало ли:
Код
  With CreateObject("Excel.Application")
    .Visible = True
    .workbooks.Open "c:\book1.xlsm"
    .Run "A_macro"
  End With


Может быть макрос не той командой запускаю - "run"?
Может копать в сторону надстройки - через личную книгу создавать ярлык и автозапуск?
Еще читал - про возможность автоматического запуска макроса при открытии файла и перехвата dde-запросов.
Помогите или направьте на путь :)

Не знаю, нужен ли тут пример, есть два файла - один исполняющий, другой исполняемый.
Изменено: psevdonim - 22.12.2016 14:20:47
Vba пересохранение файла в другой формат и сторонней книги кодом
 
Код
Workbooks.Open Filename:="C:\Users\...\Desktop\1.csv", local:=True 'открываем файл
ActiveWorkbook.SaveAs Filename:="C:\Users\...\Desktop\1.xlsx", _ 'пересохраняем в нужный формат
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

попробуйте вот так конвертировать
Динамическая гистограмма для анализа сопоставимых данных
 
Tuk, общие принципы, я думаю, -  должны быть понятны
Поиск по цвету ячейки и значению
 
Kuzmich, Ваш вариант, к сожалению, не работает - по формулам видит диапазоны и условия, но в конечно итоге результат - "#ЗНАЧ!"
Поиск по цвету ячейки и значению
 
МатросНаЗебре, спасибо! Работает!
Поиск по цвету ячейки и значению
 
Добрый день! Помогите, пожалуйста, правильно написать макрос в пользовательских функциях для вызова формулы "Поиск1" из Module1.
Нужно посчитать количество ячеек, если в строке совпадают два параметра в двух разных колонках, заданных пользователем - цвет ячейки и значение.
Цвет ячейки и значение задаем отдельными ячейками - D1 и D2, соответственно.
Поиск по цвету или по значению - получается, а как свести их вместе одним счетчиком - не соображу.
В приложенном примере в ячейке D4 должно получиться значение "2".
Страницы: 1
Наверх