vbs中,模拟键盘CTRL+C,换到另外一个窗口后,模拟键盘CTRL+V,却不能复制?

其实就是想把excel里的数据复制到其他地方,比如txt。我先将excel中的某个单元格选定,然后sendkeys“^C”,然后切换到txt窗口,再sendkeys"^V... 其实就是想把excel里的数据复制到其他地方,比如txt。
我先将excel中的某个单元格选定,然后sendkeys“^C”,然后切换到txt窗口,再sendkeys"^V",结果不是我想象中的能成功复制粘贴,这是为什么啊?
展开
 我来答
阿KingGz
2012-06-26 · TA获得超过134个赞
知道小有建树答主
回答量:180
采纳率:0%
帮助的人:97.4万
展开全部
程序设计思路是正确的,但使用SendKeys方法时,需要注意的是:该方法默认只对当前Active(激活)的窗口发送模拟按键动作。所以使用此方法时,需要先激活目标窗口到前端。其实在Excel中,可以直接使用Selecion.Copy,Selection.PasteSpecial来实现拷贝,粘贴的动作。 而在其它程序中,也可以使用Clipboard对象来在不同程序之间传递数据。
追问
我要在不同程序之间传递数据,clipboard具体怎么操作?我在网上找的实际操作有问题,还望指教
追答
本示例使用 SetText 方法从一个文本框中复制文本到剪贴板,再通过GetText读取剪贴板内容处理输出。要检验此示例,可将本例代码粘贴到一个带有名为 Text1 的窗体的声明部分,然后按 F5 键并单击该窗体。  
Private Sub Form_Click ()
Const CF_TEXT = 1 ' 定义位图各种格式。
Dim I, Msg, Temp ' 声明变量。
On Error Resume Next ' 设置错误处理。
Msg = "Type anything you like into the text box below."
Text1.Text = InputBox(Msg) ' 取得用户正文。
Msg = "Choose OK to copy the contents of the text box "
Msg = Msg & "to the Clipboard." MsgBox Msg ' 显示信息。
ClipBoard.Clear ' 清除剪贴板。
Clipboard.SetText Text1.Text ' 将正文放置在剪贴板上。
If Clipboard.GetFormat(CF_TEXT) Then
Text1.Text = "" ' 清除该正文框。
Msg = "The text is now on the Clipboard. Choose OK "
Msg = Msg & "to copy the text from the Clipboard back "
Msg = Msg & "to the text box."
MsgBox Msg ' 显示信息。
Temp = Clipboard.GetText(CF_TEXT) ' 取得剪贴板正文。
For I = Len(Temp) To 1 Step -1 ' 使该正文反向。
Text1.Text = Text1.Text & Mid(Temp, I, 1)
Next I
Else
Msg = "There is no text on the Clipboard."
MsgBox Msg ' 显示错误信息。
End If
End Sub
rulerstorm
2012-06-26 · 超过13用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:36.7万
展开全部
不如直接操作excel数据,直接用语句读取某个单元格,这样比较靠谱

用你的方法,可能是因为你点击了vbs文件后,活动窗口就不是excel了,所以复制不成功。建议你在vbs内设置一个延时,然后及时点击excel窗口,使它成为活动窗口。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式