因为Shell是异步运行的,所谓异步运行,就是说它启动后是不等待程序是否运行完毕就立刻执行下一条语句的,这样的话当下一条语句(在这里就是Sendkeys)运行的时候,记事本还没有启动完毕呢,这样的话发送粘贴按键命令就无效了,应该延迟一段时间再发送,比如:
Private Sub Command2_Click()
Clipboard.Clear
Clipboard.SetText Label1.Caption
Shell "notepad", vbNormalFocus
Timer1.Interval = 2000 '延迟2秒
Timer1.Enabled = True '启动定时器
End Sub
Private Sub Timer1_Timer() '窗体上要添加一个Timer1控件
SendKeys "^v", True '粘贴
Timer1.Enabled = False '关闭定时器
End Sub