Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/AppActivate не срабатывает, почему? - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » AppActivate не срабатывает, почему? (Макросы/Sub)
AppActivate не срабатывает, почему?
t330 Дата: Вторник, 28.05.2019, 16:34 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 98
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Всем добрый день!

Подскажите пожалуйста , почему не срабатывает AppActivate в коде ниже?

[vba]
Код

Sub calctest()

Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1)      ' Запускает калькулятор.

AppActivate ReturnValue   ' активируем калькулятор
For I = 1 To 10                ' Организует цикл.
    SendKeys I & "{+}", True        ' Передает данные калькулятору
Next I                  ' для вычисления суммы.
SendKeys "=", True              ' Окончательный результат.
'SendKeys "%{F4}", True   ' закрываем калькулятор

End Sub
[/vba]

 
Ответить
СообщениеВсем добрый день!

Подскажите пожалуйста , почему не срабатывает AppActivate в коде ниже?

[vba]
Код

Sub calctest()

Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1)      ' Запускает калькулятор.

AppActivate ReturnValue   ' активируем калькулятор
For I = 1 To 10                ' Организует цикл.
    SendKeys I & "{+}", True        ' Передает данные калькулятору
Next I                  ' для вычисления суммы.
SendKeys "=", True              ' Окончательный результат.
'SendKeys "%{F4}", True   ' закрываем калькулятор

End Sub
[/vba]


Автор - t330
Дата добавления - 28.05.2019 в 16:34
Pelena Дата: Вторник, 28.05.2019, 20:33 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 14087
Репутация: 3080 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
У меня так сработало
[vba]
Код
Sub calctest()
Dim I
Shell "CALC.EXE", 1 ' Запускает калькулятор.
Application.Wait (Now + TimeValue("0:0:1"))
For I = 1 To 10 ' Организует цикл.
SendKeys I & "{+}", True ' Передает данные калькулятору
Next I ' для вычисления суммы.
SendKeys "=", True ' Окончательный результат.
'SendKeys "%{F4}", True ' закрываем калькулятор
End Sub
[/vba]
А вообще AppActivate требует названия окна, вроде. Что-то типа [vba]
Код
AppActivate "Калькулятор"
[/vba](могу ошибаться)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеУ меня так сработало
[vba]
Код
Sub calctest()
Dim I
Shell "CALC.EXE", 1 ' Запускает калькулятор.
Application.Wait (Now + TimeValue("0:0:1"))
For I = 1 To 10 ' Организует цикл.
SendKeys I & "{+}", True ' Передает данные калькулятору
Next I ' для вычисления суммы.
SendKeys "=", True ' Окончательный результат.
'SendKeys "%{F4}", True ' закрываем калькулятор
End Sub
[/vba]
А вообще AppActivate требует названия окна, вроде. Что-то типа [vba]
Код
AppActivate "Калькулятор"
[/vba](могу ошибаться)

Автор - Pelena
Дата добавления - 28.05.2019 в 20:33
bmv98rus Дата: Вторник, 28.05.2019, 21:01 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 2275
Репутация: 399 ±
Замечаний: 20% ±

Excel 2013/2016
Pelena, Лена, тут вопрос скорее почему не срабатывает то, что прям в документации https://docs.microsoft.com/en-us....3Dtrue] прописано. И это происходит с калькулятором, но не с word. Могу предположить, что это последствия Windows10 и калькулятора в нем, так как это не классическое приложение уже. Попробую посмотреть что там с Win7 но завтра.


Замечательный медведь, процентов на 20.

Сообщение отредактировал bmv98rus - Вторник, 28.05.2019, 21:02
 
Ответить
СообщениеPelena, Лена, тут вопрос скорее почему не срабатывает то, что прям в документации https://docs.microsoft.com/en-us....3Dtrue] прописано. И это происходит с калькулятором, но не с word. Могу предположить, что это последствия Windows10 и калькулятора в нем, так как это не классическое приложение уже. Попробую посмотреть что там с Win7 но завтра.

Автор - bmv98rus
Дата добавления - 28.05.2019 в 21:01
_Igor_61 Дата: Вторник, 28.05.2019, 21:12 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 299
Репутация: 60 ±
Замечаний: 0% ±

Excel 2007
bmv98rus, у меня Win7, тоже не срабатывает. Тоже очень удивился, делая все в соответствии с документацией. Пробовал и по названию окна ("Калькулятор"), и путь и т.д. и т.п. - ошибка вылазит
 
Ответить
Сообщениеbmv98rus, у меня Win7, тоже не срабатывает. Тоже очень удивился, делая все в соответствии с документацией. Пробовал и по названию окна ("Калькулятор"), и путь и т.д. и т.п. - ошибка вылазит

Автор - _Igor_61
Дата добавления - 28.05.2019 в 21:12
krosav4ig Дата: Вторник, 28.05.2019, 23:12 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2079
Репутация: 871 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Процесс запущен, окна еще нет, отсюда и ошибка, тут или, как предложила Елена, делать delay, или пользовать winapi , например EnumWindows + GetWindowThreadProcessId + IsWindowVisible
А Appactivate в качестве первого аргумента принимает имя окна или идентификатор процесса


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 28.05.2019, 23:15
 
Ответить
СообщениеПроцесс запущен, окна еще нет, отсюда и ошибка, тут или, как предложила Елена, делать delay, или пользовать winapi , например EnumWindows + GetWindowThreadProcessId + IsWindowVisible
А Appactivate в качестве первого аргумента принимает имя окна или идентификатор процесса

Автор - krosav4ig
Дата добавления - 28.05.2019 в 23:12
bmv98rus Дата: Вторник, 28.05.2019, 23:59 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2275
Репутация: 399 ±
Замечаний: 20% ±

Excel 2013/2016
Процесс запущен, окна еще нет, отсюда и ошибка

ага, при этом ворд прям взлетает с места, а крохотный калькулятор неспешно восходит на трон. С Notepad, с Notepad++ все выходит, но не с калькулятором.


Замечательный медведь, процентов на 20.
 
Ответить
Сообщение
Процесс запущен, окна еще нет, отсюда и ошибка

ага, при этом ворд прям взлетает с места, а крохотный калькулятор неспешно восходит на трон. С Notepad, с Notepad++ все выходит, но не с калькулятором.

Автор - bmv98rus
Дата добавления - 28.05.2019 в 23:59
t330 Дата: Среда, 29.05.2019, 19:22 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 98
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Да, удивительно , что даже с задержкой код не срабатывает , если использовать именно AppActivator



[vba]
Код


Sub calctest()

Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1)      ' Запускает калькулятор.

Application.Wait (Now + TimeValue("0:0:5")) ' ЗАДЕРЖКА на 5 Секунд
AppActivate ReturnValue   ' активируем калькулятор
Application.Wait (Now + TimeValue("0:0:5")) ' ЗАДЕРЖКА еще на 5 Секунд

For I = 1 To 10                ' Организует цикл.
    SendKeys I & "{+}", True        ' Передает данные калькулятору
Next I                  ' для вычисления суммы.
SendKeys "=", True              ' Окончательный результат.
'SendKeys "%{F4}", True   ' закрываем калькулятор

End Sub

[/vba]
 
Ответить
СообщениеДа, удивительно , что даже с задержкой код не срабатывает , если использовать именно AppActivator



[vba]
Код


Sub calctest()

Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1)      ' Запускает калькулятор.

Application.Wait (Now + TimeValue("0:0:5")) ' ЗАДЕРЖКА на 5 Секунд
AppActivate ReturnValue   ' активируем калькулятор
Application.Wait (Now + TimeValue("0:0:5")) ' ЗАДЕРЖКА еще на 5 Секунд

For I = 1 To 10                ' Организует цикл.
    SendKeys I & "{+}", True        ' Передает данные калькулятору
Next I                  ' для вычисления суммы.
SendKeys "=", True              ' Окончательный результат.
'SendKeys "%{F4}", True   ' закрываем калькулятор

End Sub

[/vba]

Автор - t330
Дата добавления - 29.05.2019 в 19:22
Pelena Дата: Среда, 29.05.2019, 19:24 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 14087
Репутация: 3080 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
А если в начале макроса отключить обработчик ошибок
[vba]
Код
On Error Resume Next
[/vba]


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеА если в начале макроса отключить обработчик ошибок
[vba]
Код
On Error Resume Next
[/vba]

Автор - Pelena
Дата добавления - 29.05.2019 в 19:24
RAN Дата: Среда, 29.05.2019, 20:57 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5086
Репутация: 1008 ±
Замечаний: 0% ±

2010
Дабы лучше спать, горю желанием узнать, а для чего все это?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеДабы лучше спать, горю желанием узнать, а для чего все это?

Автор - RAN
Дата добавления - 29.05.2019 в 20:57
_Igor_61 Дата: Среда, 29.05.2019, 21:02 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 299
Репутация: 60 ±
Замечаний: 0% ±

Excel 2007
У меня последний код с задержками срабатывает, даже если одна секунда а не пять. Win7 Excel2007.
К сообщению приложен файл: AppActivate.xlsm(18.3 Kb)
 
Ответить
СообщениеУ меня последний код с задержками срабатывает, даже если одна секунда а не пять. Win7 Excel2007.

Автор - _Igor_61
Дата добавления - 29.05.2019 в 21:02
t330 Дата: Среда, 29.05.2019, 21:07 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 98
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
У меня последний код с задержками срабатывает, даже если одна секунда а не пять. Win7 Excel2007.


Нет этот файл не сработал тоже

Вин10 ОФис 2019 вчера поставил, до этого был Офис 2016 , но там тоже не работало.



Сообщение отредактировал t330 - Среда, 29.05.2019, 21:07
 
Ответить
Сообщение
У меня последний код с задержками срабатывает, даже если одна секунда а не пять. Win7 Excel2007.


Нет этот файл не сработал тоже

Вин10 ОФис 2019 вчера поставил, до этого был Офис 2016 , но там тоже не работало.


Автор - t330
Дата добавления - 29.05.2019 в 21:07
t330 Дата: Среда, 29.05.2019, 21:08 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 98
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Дабы лучше спать, горю желанием узнать, а для чего все это?


Как для чего?
Ученье -свет!


Сообщение отредактировал t330 - Среда, 29.05.2019, 21:08
 
Ответить
Сообщение
Дабы лучше спать, горю желанием узнать, а для чего все это?


Как для чего?
Ученье -свет!

Автор - t330
Дата добавления - 29.05.2019 в 21:08
t330 Дата: Среда, 29.05.2019, 21:14 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 98
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
А если в начале макроса отключить обработчик ошибок


Так работает с условием что есть задержка.

А если задержку закомментить , как в скрине ниже, то результат выдает в сам модуль а не в калькулятор:)

Ну в общем, понятно , что это видимо глюк экселя.

Спасибо!
 
Ответить
Сообщение
А если в начале макроса отключить обработчик ошибок


Так работает с условием что есть задержка.

А если задержку закомментить , как в скрине ниже, то результат выдает в сам модуль а не в калькулятор:)

Ну в общем, понятно , что это видимо глюк экселя.

Спасибо!

Автор - t330
Дата добавления - 29.05.2019 в 21:14
_Igor_61 Дата: Среда, 29.05.2019, 21:16 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 299
Репутация: 60 ±
Замечаний: 0% ±

Excel 2007
Не екселя (см. сообщение №6)
 
Ответить
СообщениеНе екселя (см. сообщение №6)

Автор - _Igor_61
Дата добавления - 29.05.2019 в 21:16
RAN Дата: Среда, 29.05.2019, 21:26 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5086
Репутация: 1008 ±
Замечаний: 0% ±

2010
У меня тоже работает.
Но, если перед циклом вставить Stop, то, в итоге, куркулятор ничего не насчитает.
Забиваем, и спим спокойно. yes


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеУ меня тоже работает.
Но, если перед циклом вставить Stop, то, в итоге, куркулятор ничего не насчитает.
Забиваем, и спим спокойно. yes

Автор - RAN
Дата добавления - 29.05.2019 в 21:26
bmv98rus Дата: Среда, 29.05.2019, 22:03 | Сообщение № 16
Группа: Проверенные
Ранг: Старожил
Сообщений: 2275
Репутация: 399 ±
Замечаний: 20% ±

Excel 2013/2016
RAN, Коты вааще весь день дрыхнут.

Если ставить OnError resume next - значит просто игнорировать ошибку AppActivate ReturnValue, и это не ответ на вопрос темы
так как отсрочка на win10 не работает и работает на Win7 , а также работает вызов Notepad, то все ж склоняюсь к тому что виной приложение Калькулятор в Win10 , а оно там не классическое, это факт.


Замечательный медведь, процентов на 20.
 
Ответить
СообщениеRAN, Коты вааще весь день дрыхнут.

Если ставить OnError resume next - значит просто игнорировать ошибку AppActivate ReturnValue, и это не ответ на вопрос темы
так как отсрочка на win10 не работает и работает на Win7 , а также работает вызов Notepad, то все ж склоняюсь к тому что виной приложение Калькулятор в Win10 , а оно там не классическое, это факт.

Автор - bmv98rus
Дата добавления - 29.05.2019 в 22:03
RAN Дата: Среда, 29.05.2019, 22:44 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5086
Репутация: 1008 ±
Замечаний: 0% ±

2010
А косолапые лапу сосут и завидуют?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеА косолапые лапу сосут и завидуют?

Автор - RAN
Дата добавления - 29.05.2019 в 22:44
Мир MS Excel » Вопросы и решения » Вопросы по VBA » AppActivate не срабатывает, почему? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2019 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!