2009-05-18 2 views
0

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

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

ответ

1

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

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

0

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

SendKeys I & "{+}", True 
0

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

Есть варианты для VB, Delphi, C и т. Д. Для VBA достаточно просто работать в VBA.

0

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

В AutoIt сценарии это должно работать, чтобы ввести ключ + на цифровой клавиатуре:

Send("{NUMPADADD}") 

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^