今天调试动作中的VBA代码,发现一个问题,涉及所有模拟输入的动作,包括:模拟按键A、模拟按键B和多步骤输入。
当在VBA主窗口输入代码后,按F5运行,如果当前光标不在程序内或模块中子程序有重名时,VBA会弹出一个窗口,让你选择一个宏运行。
这时,我模拟输入的内容并没有在宏名称输入框(下图中下面的红框)中,而且在主窗口(下图上面的红框)光标所在位置。
也就是说模拟输入的焦点获取错误。
quicker不会自动影响焦点。
对于这个窗口,如果需要焦点自动到输入框,可以试试模拟Alt+M键。
马上就试试看,但是你说焦点不在这个输入框,我按DEL可以直接删除宏的名称
这个也许只是Word本身处理了Del按键的消息。
已测试,还是不行
不光DEL,弹窗后,你直接可以直接输入文本,就在文本输入框
麻烦CL测试一下呗,WORD VBA你肯定有啊
有点疑惑,是弹出的整个窗口没有焦点?那肯定ALt+M没用,因为这个需要弹出的对话框有焦点才能生效。
我单独测试是没问题的。
这里F5是啥作用?好像代码窗口里按F5有时候不会弹出
运行VBA代码
我觉得可能是QUICKE的等待窗口之类的问题,我前面有一个等待窗口
我这里似乎比较正常
好像找到问题原因了,正在测试
找到原因了,我在粘贴VBA代码的时选择添加一个回车符,以为这样光标肯定是在文档最后,按F5应该出来确认宏名称的窗口,在粘贴前编辑器就有一个换行,这样就没有到代码结尾 ,所以窗口并没有弹出,当然也就输入不了宏名称了。
再想问一下,模拟按键a和b到底有什么区别,执行结果是不是都一样
b 可以传递参数,有个别键不支持,如Win。 A不能传递参数,但是所有键都支持。