EXCEL VBA sendkeys语句问题

对于一个工作薄,如果我要不保存并退出EXCEL,按照我们在工作薄界面的操作顺序,应当是点击右上角的“X”,EXCEL弹出对话框提示是否保存,这时我们按一下TAB键,选择“... 对于一个工作薄,如果我要不保存并退出EXCEL,按照我们在工作薄界面的操作顺序,应当是点击右上角的“X”,EXCEL弹出对话框提示是否保存,这时我们按一下TAB键,选择“否”,再按“ENTER”回车键,然后就完成了我所要求的操作,按顺序反映在VBA中应当是:
Application.Quit
Application.SendKeys ("{tab}")
Application.SendKeys ("{enter}")
可是我实际这样写的时候,只执行到Application.Quit,后面依然要求我手动操作,后来我改一了下顺序,如下:
Application.SendKeys ("{tab}")
Application.Quit
Application.SendKeys ("{enter}")
这样就可以按我的要求完成操作,但我对这个顺序不解,请高手解释一下sendkeys
展开
 我来答
wtx274321
2014-04-08 · TA获得超过1.8万个赞
知道大有可为答主
回答量:2343
采纳率:57%
帮助的人:935万
展开全部

为什么要TAB呢,直接Y或N不就行了吗:

Sub 退出()
  Application.Quit
  Application.SendKeys "Y"
End Sub

或:

Sub 退出()
  Application.Quit
  Application.SendKeys "N"
End Sub

 我对你的代码注释如下

Application.SendKeys ("{tab}")'先按TAB无效,这一句其实没有作用
Application.Quit'选择关闭
Application.SendKeys ("{enter}")'按回车键确认,注意这是默认停留在Y上,也就是处于回车保存状态。

以下代码也测试通过:

Sub 退出()
  Application.Quit
  Application.SendKeys "{TAB}"
  Application.SendKeys "{ENTER}"
End Sub
匿名用户
推荐于2018-05-18
展开全部
sendkeys 有2个参数的,第2个参数为TRUE,则 Microsoft Excel 等待击键处理完后再将控制返回到宏
那么你写成
Application.Quit
Application.SendKeys "{tab}",TRUE
Application.SendKeys "{enter}",TRUE

这样应该行了,MSDN说,向对话框发送按键时,需要先调用SENDKEYS...,我在做试验时,你上写的2种方法都可以正常退出..没看出区别,可能是我们的EXCEL版本不一样
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
表里如一
2014-04-08 · 知道合伙人软件行家
表里如一
知道合伙人软件行家
采纳数:2066 获赞数:11632
从事6年生产管理,期间开发了多款小软件进行数据处理和分析,后

向TA提问 私信TA
展开全部
看微软的帮助文件中有说明:
http://msdn.microsoft.com/zh-cn/library/office/ff821075

本方法将击键放到键盘缓冲区。某些情况下,在调用要使用击键的方法之前必须先调用此方法。例如,若要往对话框中发送密码,则必须在显示对话框之前调用 SendKeys 方法

Application.Quit也是属于其中一种情形。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式