|
3#

楼主 |
发表于 2012-2-7 17:41:16
|
只看该作者
本帖最后由 JosephTan 于 2012-2-7 17:54 编辑
Grant 发表于 2012-2-7 14:00 ![]()
在AppActivate ReturnValue之前加一个延时,原因是计算器还没打开就执行了
谢谢.真的是如此.
我改成这样:
Private Sub Command2_Click()
Me.Text0.SetFocus '把焦点定在输入框
SendKeys "+{HOME}", True '全选计算算式
SendKeys "^x", True '剪切计算算式
Dim ReturnValue
ReturnValue = Shell("Calc.EXE", 1) ' 运行计算器。
Call Sleep(500)
AppActivate ReturnValue ' 激活计算器。这句指令会出错,不知什么原因?
SendKeys "^v", True '粘帖计算算式
SendKeys "=", True ' 取得总合。
SendKeys "^c", True '复制结果
SendKeys "%{F4}", True ' 按 ALT+F4 关闭计算器。
Me.Text0.SetFocus '把焦点给回输入框
SendKeys "^v", True '粘帖结果给输入框
End Sub
这段代码在单个的窗口运行没事.问题是有时候不知道我输入的控件是什么,比如说我在导航窗体打开了我放票子窗体,然后在发票子窗体里又在它的订单详情的子窗体里面的某个字段做计算.这个时候应该怎么应用这段代码来计算我想要的结果呢?
比如说我现在把这段代码写入一个函数,然后用AutoKeys宏来调用这个函数,而我需要进入那么多层子窗体来找到这个焦点所在控件的名称.那应该怎么办?如下图所示:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|