Application.SendKeys "^e" ' 模拟按下Ctrl+E這個不起作用
时间: 2023-07-08 17:45:58 浏览: 253
SendMessage之模拟按键
5星 · 资源好评率100%
我很抱歉,可能是我之前的回答有误。在VBA中模拟Ctrl+E组合键的确可以使用`Application.SendKeys "^e"`,但是这个方法有时候可能会失效,原因是在模拟按键之前可能需要添加一些延时,以确保按键模拟的时间点是正确的。另外,如果当前有其他窗口或程序在前台运行,那么模拟按键的效果也可能会受到影响。以下是修改后的代码,可以尝试一下:
```
Sub CopyTwoCharsAndCtrlE()
Dim str As String
str = Mid(Range("A1").Value, 3, 2) ' 从A1单元格中的第3个字符开始,复制2个字符到str变量
Range("D2").Value = str ' 将复制的2个字符粘贴到D2单元格中
Application.Wait (Now + TimeValue("0:00:01")) ' 添加延时1秒钟
Application.SendKeys "^e" ' 模拟按下Ctrl+E
End Sub
```
在这个修改后的代码中,我们使用了`Application.Wait`方法来添加了一个1秒钟的延时,以确保在按键模拟之前,Excel窗口已经完全处于活动状态。另外,你可以根据需要调整延时的时间。
阅读全文