0

我正在做一个项目,基本上,做屏幕抓取。我正在使用 VBA 根据存储在电子表格中的输入来驱动另一个系统。我遇到的问题是某些字段需要数字键盘中的 + 作为字段退出字符。

我使用 SendKeys 函数填写其他字段没有问题,但是对于我的一生,在我所做的任何研究中,我都无法弄清楚如何专门通过那个 + 。有没有人必须这样做?我觉得有一些简单的东西我没有得到......

4

4 回答 4

1

不确定 2007,但 2003 和更早的 VBA SendKeys 不支持发送键盘特定键。

我确实找到了这个实用程序,它将做键盘键,http://cpap.com.br/orlando/SendKeysMore.asp ?IdC=New

于 2009-05-18T04:00:46.077 回答
0

大括号不起作用吗?

 SendKeys I & "{+}", True
于 2009-05-19T13:29:46.853 回答
0

回到另一种生活,我编写了一个名为 PushKeys 的程序,它绕过了 VB SendKeys 命令的限制,但语法兼容并具有一些其他功能(如睡眠、数字键盘键)。我所在的网站已经不存在了,但幸运的是有人在这里存档了我的 PushKeys 程序

有 VB、Delphi、C 等的变体。VB 应该很容易在 VBA 中工作。

于 2009-05-19T13:38:05.447 回答
0

我已经能够将AutoIT用于一些 MS Office VBA 项目,其中键盘或鼠标输入是唯一的方法,例如当 MS Office 没有在对象模型中公开某些内容但它存在于 GUI 中时。

在 AutoIT 脚本中,这应该可以在数字键盘上键入 + 键:

Send("{NUMPADADD}")

您可以编译 AutoIT 脚本 (*.au3) 文本文件来创建可以从 VBA 运行的 EXE:

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

您可以在www.autoitscript.com找到 AutoIT

于 2009-11-06T14:15:38.043 回答