为了账号安全,请及时绑定邮箱和手机立即绑定

关于工作簿EXCEL VBA sendkeys语句问题,具体如下~

关于工作簿EXCEL VBA sendkeys语句问题,具体如下~

汪汪一只猫 2022-01-08 05:01:56
对于一个工作薄,如果我要不保存并退出EXCEL,按照我们在工作薄界面的操作顺序,应当是点击右上角的“X”,EXCEL弹出对话框提示是否保存,这时我们按一下TAB键,选择“否”,再按“ENTER”回车键,然后就完成了我所要求的操作,按顺序反映在VBA中应当是:Application.QuitApplication.SendKeys ("{tab}")Application.SendKeys ("{enter}")可是我实际这样写的时候,只执行到Application.Quit,后面依然要求我手动操作,后来我改一了下顺序,如下:Application.SendKeys ("{tab}")Application.QuitApplication.SendKeys ("{enter}")这样就可以按我的要求完成操作,但我对这个顺序不解,请高手解释一下sendkeys
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

为什么要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

 


查看完整回答
反对 回复 2022-01-10
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

sendkeys 有2个参数的,第2个参数为TRUE,则 Microsoft Excel 等待击键处理完后再将控制返回到宏
那么你写成
Application.Quit
Application.SendKeys "{tab}",TRUE
Application.SendKeys "{enter}",TRUE
这样应该行了,MSDN说,向对话框发送按键时,需要先调用SENDKEYS...,我在做试验时,你上写的2种方法都可以正常退出..没看出区别,可能是我们的EXCEL版本不一样

查看完整回答
反对 回复 2022-01-10
  • 2 回答
  • 0 关注
  • 770 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信