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

Страницы: 1
Имитация нажатия сочетания клавиш средствами API
 
Здравствуйте!

Возвращаюсь к теме со стороны Excel: есть ли возможность приостанавливать выполнение макроса до момент нажатии пользователем на клавиши DOWN? Файл Excel при этот не должен становиться активным (оставаться активным должно то окно, которое было до нажатия клавиши).

Буду признательна за любую помощь.
Изменено: Феля - 16.05.2013 12:18:32
Имитация нажатия сочетания клавиш средствами API
 
Здравствуйте!

Hugo, благодарю!

Я попробую на AutoIt. Но ... я столько времени потратила на Excel ... вот почему не работают Enter и Down?! Ну хоть кто-нибудь, объясните пожалуйста, очень надо! Дело принципа!  :)
Изменено: Феля - 14.05.2013 22:25:36
Имитация нажатия сочетания клавиш средствами API
 
Цитата
Hugo пишет:
Не, я бы на AutoIt делал...
Скажите пожалуйста, этот код подойдёт?
заголовок
Изменено: Феля - 13.05.2013 23:42:53
Имитация нажатия сочетания клавиш средствами API
 
Здравствуйте!
А можно этой утилитой с листа. Excel перенести данные? Это просто? Нужно устанавливать на компьютер программу? На работе прав админа нет.
Имитация нажатия сочетания клавиш средствами API
 
Добрый вечер!

Вчёра всё работало на примере офисных приложений: Excel, Outlook, Блокнот.
Сегодня попыталась осуществить ввод данных в другой приложение - цифры вбиваются, а вот клавиши Enter и Down не работают. Хотя эти клавиши с клавиатуры нормально функционируют (т.е. если я нажимаю на этои клавиши они выполняются в сторонней программе своё предназначение).

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

Спасибо.
Имитация нажатия сочетания клавиш средствами API
 
Сделала так:
Код
Application.Wait (Now + TimeValue("0:00:05") / 10)

Возможно дело было в том, что нужно было нажимать стрелку вниз, а не энтер.

Ваше решение помогло ... благодарю.
Имитация нажатия сочетания клавиш средствами API
 
Пустой цикл до 1000 тоже не помог.
Странно всё это. Может это из той же области что и неработающее сочетание клавиш:
Код
Application.SendKeys "%{TAB}", True
Имитация нажатия сочетания клавиш средствами API
 
Цикл от 1 до 10 не помог.
Добавлен цикл был так:
Код
For Each i In Selection
        For v = 1 To Len(i)
            DoEvents
      For n = 1 To 10
      Next
            SendKey i.Offset(0, v).Value
        Next

    DoEvents

    For n = 1 To 10
    Next

    SendKey VK_DOWN
Next


Цикл до 100 ... и DoEvents был после пустого цикла - тоже не помогло.
Имитация нажатия сочетания клавиш средствами API
 
сейчас тестирую ... а вот есть может функция с ожиданием в милисекундах?
Application.Wait (Now + TimeValue("0:00:01")) очень долго получается.
Имитация нажатия сочетания клавиш средствами API
 
сейчас ...
Имитация нажатия сочетания клавиш средствами API
 
Хотя этот код работает, если вводить значения в лист Excel.
А вот если вводить в ... Outlook, то всё равно всё останавливается ... где-то на середине.
Имитация нажатия сочетания клавиш средствами API
 
Сделала и так ... но результат всё равно не тот ...
Код
For Each i In Selection
        For v = 1 To Len(i)
            DoEvents
            SendKey i.Offset(0, v).Value
        Next

    DoEvents
    SendKey VK_DOWN
Next
Изменено: Феля - 12.05.2013 23:07:30 (ошиблась ...)
Имитация нажатия сочетания клавиш средствами API
 
Добавили DoEvents:
Код
For Each i In Selection
    '÷èñëî ìîæåò áûòü íå îäíîðàçðÿäíîå ...
    If Len(i) > 0 Then
        For v = 1 To Len(i)
            SendKey i.Offset(0, v).Value
        Next
    End If
    'Æì¸ì ñòðåëêó ÂÍÈÇ
    SendKey VK_DOWN
    DoEvents
Next


Не помогло.
Имитация нажатия сочетания клавиш средствами API
 
может быть дело в объёме используемой памяти?
Неужели никто не сталкивался с этой проблемой?
Имитация нажатия сочетания клавиш средствами API
 
Вроде сделала ... но вставка прекращается на середине данных ... в чём может быть проблема?
Выкладываю файл.
Имитация нажатия сочетания клавиш средствами API
 
Да, с ответами не густо.
Спасибо, сейчас посмотрю что это и с чем его едят! ;)
Имитация нажатия сочетания клавиш средствами API
 
Здравствуйте!

У меня возникла небольшая проблема в написании кода. Темы с форума (http://planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=8&TID=20197&MID=178051#message178051) прочитала, но это не то.

У меня есть код, который имитирует нажатие клавиш

Что я делаю: Есть столбик значений (~1000) который содержит только цифры (от 1 до 100). Я копирую каждую ячейку и вставляю в другую программу посредством стрелки "вниз".

Вопрос:
Как мне переделать код таким образом чтобы он имитировал сочетание клавиш "Ctrl+V" (вставка) и стрелку "вниз" (сдвинуться вниз на 1 ячейку)?

Другие способы (SendKey) не работают поскольку вставляю значение из Exscel в другие приложения, в которых они блокируются.
Страницы: 1
Наверх