Как отправить + с цифровой клавиатуры в Excel / VBA? - PullRequest
0 голосов
/ 18 мая 2009

Я работаю над проектом на работе, который, в основном, делает скрининг экрана. Я использую VBA для управления другой системой на основе входных данных, хранящихся в электронной таблице. Проблема, с которой я сталкиваюсь, заключается в том, что некоторые поля требуют + от цифровой клавиатуры в качестве символа выхода из поля.

У меня нет проблем с использованием функции SendKeys для заполнения других полей, но, судя по всему, ни в одном из исследований, которые я провел, я не могу понять, как передать это + конкретно. Кто-нибудь должен был сделать это? Я чувствую, что есть что-то простое, что я не понимаю ...

Ответы [ 4 ]

1 голос
/ 18 мая 2009

Не уверен насчет 2007, но 2003 и более ранние версии VBA SendKeys не поддерживают отправку определенных клавиш клавиатуры.

Я нашел эту утилиту, которая будет делать клавиши клавиатуры, http://cpap.com.br/orlando/SendKeysMore.asp?IdC=New

0 голосов
/ 06 ноября 2009

Я смог использовать AutoIT для некоторых проектов MS Office VBA, где ввод с клавиатуры или мыши был единственным способом, например, когда MS Office не раскрывает что-либо в объектной модели, но существует в GUI.

В скрипте AutoIT это должно работать для ввода клавиши + на цифровой клавиатуре:

Send("{NUMPADADD}")

Вы можете скомпилировать текстовый файл сценария AutoIT (* .au3), чтобы создать EXE-файл, который можно запустить из VBA:

Dim RetVal As Variant
RetVal = Shell("YourAutoITscript.exe")

Вы можете найти AutoIT на www.autoitscript.com

0 голосов
/ 19 мая 2009

В другой жизни я написал программу под названием PushKeys, которая обошла ограничения команды VB SendKeys, но была совместима с синтаксисом и имела несколько других функций (таких как Sleep, цифровые клавиши). Мой веб-сайт, на котором он был, больше не работает, но, к счастью, кто-то заархивировал мою программу PushKeys здесь .

Существуют варианты для VB, Delphi, C и т. Д. С VB достаточно легко работать в VBA.

0 голосов
/ 19 мая 2009

Не работают ли фигурные скобки?

 SendKeys I & "{+}", True
...