Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2094|回复: 2

VBA如何将已打开的记事本中的文本复制到Excel中,然后将记事本关闭

[复制链接]
发表于 2015-11-17 23:02 | 显示全部楼层 |阅读模式
我是想通过VBA发现系统打开了一个记事本之后,将里面的内容复制到Excel中,然后将该记事本关闭。


由于该记事本是另外一个程序自动打开的,我事先并不知道该文本的名称和路径,所以不可以用Open ...for...语句来操作。



请教高手,有没有好的办法实现我所说的功能呢。谢谢!


excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2015-11-18 14:07 | 显示全部楼层
还没有高手来帮我解答啊?

我自己用查找句柄,然后用sendkeys的方法来做,代码如下:

Private Sub CopyText() '复制TEXT文本
hwnd = FindWindow("notepad", vbNullString)
SetForegroundWindow hwnd
SendKeys "^a"
SendKeys "^c"
SendKeys "%{F4}{TAB}{ENTER}"
Cells(1, 1).Select
hwnd = FindWindow("XLMAIN", vbNullString)
SetForegroundWindow hwnd
SendKeys "^v"
End Sub
但是我觉得这样的方法很笨,很容易出错,各个窗口焦点不好把握,弄不好就把Excel自己关闭了。

我看了兰色幻想的VBA教学视频,都是使用Open...for...as...语句来做处理记事本相关的操作,那个就很漂亮。但是由于我事先无法知道文件路径和名称,有没有办法将对已经打开的记事本进行类似的操作呢?

感谢爱疯提升我的帖子,望高手们不吝赐教。谢谢!
回复

使用道具 举报

 楼主| 发表于 2015-11-19 09:31 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-3 19:03 , Processed in 0.320672 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表