vbs中,模拟键盘CTRL+C,换到另外一个窗口后,模拟键盘CTRL+V,却不能复制?
其实就是想把excel里的数据复制到其他地方,比如txt。我先将excel中的某个单元格选定,然后sendkeys“^C”,然后切换到txt窗口,再sendkeys"^V...
其实就是想把excel里的数据复制到其他地方,比如txt。
我先将excel中的某个单元格选定,然后sendkeys“^C”,然后切换到txt窗口,再sendkeys"^V",结果不是我想象中的能成功复制粘贴,这是为什么啊? 展开
我先将excel中的某个单元格选定,然后sendkeys“^C”,然后切换到txt窗口,再sendkeys"^V",结果不是我想象中的能成功复制粘贴,这是为什么啊? 展开
2个回答
展开全部
程序设计思路是正确的,但使用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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询