【分享成果,随喜正能量】如今社会,穷人和富人截然不同,穷人沉迷于各种视频游戏娱乐中,无法自拔,痴迷过度,被这些垃圾快乐所吸引,不愿意吃苦,也懒得去奋斗,最终因为闲散懒惰,一事无成。而富人深知成功不是永远,需要不断努力,才能留住,所以愿意吃苦,不怕吃苦,磨砺自己,精益求精。身处这个社会,发展迅速,竞争激烈,要想一直留在舒适圈,就要主动去吃苦,摆脱“安逸陷阱”,拒绝“享受诱惑”,逼自己吃苦,才能优秀。

《VBA代码解决方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第25讲:工作薄的引用

工作簿与当前工作簿的区别(工作薄的引用)(1)

第二十五讲 不同工作薄文件间的切换(工作薄的引用方法)

在操作EXCEL中,不同的工作簿之间切换是经常要做的工作,那么如何用VBA代码来完成这些操作呢?下面我将介绍给大家几种方法。供大家借鉴。

我们先要了解什么是工作簿,工作薄是指Excel文件的文件名。那么什么是工作表呢?工作表就是工作薄内不同的工作页。我们今日要研究的是工作薄的问题。

1 使用Workbooks集合引用方式来引用工作簿

可以使用Workbooks集合引用方式来引用工作簿。应用于Workbook对象的Path属性将完整路径返回给应用程序,

语法如下:expression.Path

参数expression是必需的,一个有效的对象。

下面的代码所示:

Sub mynz_25() '第25讲 如何做到不同工作薄文件间的切换

MsgBox "名称为:" & Workbooks("book21.xlsm").Path

End Sub

代码解析:上述过程显示工作簿“book21”的路径。

2 使用工作簿的索引号

应用于Workbook对象的Name属性返回对象的名称。

语法如下:expression.Name

参数expression是必需的,一个有效的对象。

工作簿索引号是指工作簿打开的顺序,Excel根据工作簿打开的顺序以1开始进行编号。下面的代码显示应用程序打开的第一个工作簿的名称。

Sub mynz_25() '第25讲 如何做到不同工作薄文件间的切换

MsgBox "第一个打开的工作簿名字为:" & Workbooks(1).Name

MsgBox "包括完整路径的工作簿名称为:" & Workbooks(1).FullName

End Sub

代码解析:

1) MsgBox "第一个打开的工作簿名字为:" & Workbooks(1).Name: 显示应用程序打开的第一个工作簿的名称。

2) MsgBox "包括完整路径的工作簿名称为:" & Workbooks(1).FullName:

显示应用程序打开的第一个工作簿的完整路径和名称。FullName属性返回对象的名称,包括其磁盘路径的字符串,此属性等价于在Path属性后加上当前文件系统的分隔符,然后加上Name属性。

3 使用ThisWorkbook代表当前宏代码运行的工作簿

ThisWorkbook代表当前宏代码运行的工作簿,如下面的代码所示:

Sub mynz_25() '第25讲 如何做到不同工作薄文件间的切换

ThisWorkbook.Close SaveChanges:=False

End Sub

代码解析:上述过程使用Close方法关闭当前宏代码运行的工作簿,不保存对工作簿的任何更改。

4 使用ActiveWorkbook方法

使用ActiveWorkbook代表活动窗口(最上面的窗口)的工作簿,如下面的代码所示:

Sub mynz_25() '第25讲 如何做到不同工作薄文件间的切换

MsgBox "当前活动工作簿名字为:" & ActiveWorkbook.Name

End Sub

代码的截图:

工作簿与当前工作簿的区别(工作薄的引用)(2)

代码解析:上述过程显示活动工作簿的名称,ActiveWorkbook属性返回一个Workbook对象,该对象代表活动窗口(最上面的窗口)的工作簿。如果没有打开任何窗口或者活动窗口为信息窗口或剪贴板窗口,则返回 Nothing。

我们来看一下上面代码二的运行:

工作簿与当前工作簿的区别(工作薄的引用)(3)

上面代码二的运行第二个截图:

工作簿与当前工作簿的区别(工作薄的引用)(4)

今日内容回向:

1 引用工作薄有几种方法?

2 ActiveWorkbook 是什么意义?

本讲内容参考程序文件:VBA代码解决方案修订(1-48).xlsm

工作簿与当前工作簿的区别(工作薄的引用)(5)

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

工作簿与当前工作簿的区别(工作薄的引用)(6)

,