欢迎大家来到IT世界,在知识的湖畔探索吧!
【分享成果,随喜正能量】职场有时会让我们遍体鳞伤,可是只要我们肯于学习,肯于坚持,比如数据自动化处理,利用了VBA,那些受过伤的地方一定会变成我们最强壮的地方。让我们所担当,有所技长。
《VBA信息获取与处理》教程是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。
信息,含义非常之广泛,是我们日常生活不可或缺的一部分。从天气情况和预报,到人际关系,宇宙洪荒,都是信息的组成部分。信息在某种程度上就是数据,或者可以用数据来体现,获得信息也就是数据的获得。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。
这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是第2讲:在WORD中关闭EXCEL
第三节 在WORD为应用主窗口下关闭EXCEL的操作
好了,我们继续我们的销售汇报工作,到这里所引用的外部数据我们在报告中已经用完了,那么打开的EXCEL就可以关闭了。如下面的截图:
如何实现关闭呢?这里我们仍将给出两个方案。
1 CLOSE 方法
这种方法是常用的,先要找到EXCEL文件,然后关闭。我们先看看代码:
Private Sub CommandButton4_Click() ‘关闭打开的文件
On Error Resume Next
Dim MyXL As Object
Dim axls As Object
Set MyXL = GetObject(, “Excel.Application”)
If Err.Number <> 0 Then Exit Sub
For Each axls In MyXL.workbooks
If axls.Name = myfile Then
axls.Close ‘关闭文档
Exit For
End If
Next
Set axls = Nothing
Set MyXL = Nothing
End Sub
代码截图:
代码讲解:上面的这段程序会首先找到已经打开的EXCEL,从中找到我们需要的那个文件,然后关闭这个程序。下面我们对这个段程序进行详细的讲解。
① GetObject 函数
GetObject 用于返回正在的运行文件对象。语法如下所示:
set xlApp = GetObject(, “Excel.Application”)
如果在执行此代码时已经有EXCEL打开,则可以通过xlApp变量访问正在运行的EXCEL。 如果没有运行EXCEL,则会收到可捕获的错误消息。如果有多个Microsoft Excel正在运行,则 GetObject 将返回首先启动的excel。如果关闭第一个实例,则 GetObject将返回已启动的第二个实例,依此类推。
当然我们可以直接调用已经打开的文档也是可以的,如Excel运行的是名为 Book2 的打开工作簿,则以下代码将会返回这个文件,即使这个文件不是启动的最早的文件:
Set xlApp = GetObject(“Book2”).Application
② CreateObject 函数 用于启动的新的程序。
语法如下:set xlApp = CreateObject(“Excel.Application”)
这个时候会建立一个新的EXCEL程序的引用,或者我们称之为后期绑定。
③ For Each axls In MyXL.workbooks 遍历每个打开的EXCEL
2 利用SendKeys语句
该语句允许你将的按键指令发送到活动应用程序窗口,你可以发送一个或组合键,并且得到和直接使用键盘的同样效果。
SendKeys语句如下语法:
SendKeys string [, wait]
参数string是必须的,是要发送到活动应用程序窗口的键或组合键。
例如,使用下列指令来发送字母“f”键:SendKeys “f”
要发送组合键Alt+f,使用:SendKeys “%f” ,百分符号(%)是表示Alt键的字符串。
要发送Shift+Tab的组合键的话,那么就要使用下面的语句:SendKeys “+{TAB}” 。加号(+)表示Shift键。要发送其它键或者其它组合键的话,请参见下表列出的相应字符串。
注意:当使用SendKeys语句发送按键时,一定要牢记区分字符的大小格。因此,要发送组合键Ctrl+d的话,你必须使用^d,而发送Ctrl+Shift+D的话,则必须使用字符串:^+d
下面我们看本讲的代码:
Private Sub CommandButton5_Click()
Set ws = CreateObject(“wscript.shell”)
ws.AppActivate “001 工作表”
SendKeys “%{F4}”
End Sub
代码的截图:
代码的讲解:通过上面的讲解,我们知道上述代码就是向打开的excel文件发生ALT+F4,也就是关闭这个文件的命令。
本节知识点回向:在本节中我讲了两种方案来关闭已经打开excel的文件,但这个文件并没有处于激活状态,为了关闭这个已经打开的excel文件,我可以利用close方法,或者直接给这个文件发送关闭命令。在利用close方法时要利用GetObject函数返回这个文件,然后关闭。在利用发送关闭指令时利用了SendKeys语句来发送指令。本节中的知识点如下:
① GetObject函数的作用是什么?
② SendKeys语句的作用是什么?
③ GetObject函数和CreateObject 函数的区别是什么?
本节代码参考文件“001 在WORD中激活EXCEL.docm”
我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:
① 7→1→3→2→6→5或者7→4→3→2→6→5。
② 7→8
各套教程内容简介:
第7套教程(共三册):《VBA之EXCEL应用》:是对VBA基本的讲解
第1套教程(共三册):《VBA代码解决方案》:是入门后的提高教程
第4套教程(16G):VBA代码解决方案之视频(第一套的视频讲解)
第3套教程(共两册):《VBA数组与字典解决方案》:是对数组和字典的专题讲解
第2套教程(共两册):《VBA数据库解决方案》:是对数据库的专题讲解
第6套教程(共两册):《VBA信息获取与处理》:讲解VBA的网络及跨程序应用
第5套教程(共两册):VBA中类的解读和利用:类及接口技术的讲解
第8套教程(共三册):VBA之Word应用(最新教程):word中VBA的利用
- 第六套教程:VBA信息获取与处理,这是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22421.html