当前位置:   article > 正文

open用法 vba_Excel VBA解读(85):用VBA代码打开工作簿 — Open方法

workbook.open 语法

要操作工作簿,要使用工作表分析和处理数据,都需要先打开工作簿。

在实际操作中,打开工作簿是再平常不过的操作了。双击桌面上的Excel快捷方式图表,或者点击桌面左下角开始菜单,找到Excel程序,单击即可打开工作簿。

在VBA中,我们可以使用Workbooks对象的Open方法打开工作簿,其语法为:

Workbooks对象.Open(FileName,[UpdateLinks],[ReadOnly],[Format],[Password],[WriteResPassword],[IgnoreReadOnlyRecommended],[Origin],[Delimiter],[Editable],[Notify],[Converter],[AddToMru],[Local],[CorruptLoad])

说明:参数FileName必需,指定一个字符串,代表要打开的工作簿文件名。

参数UpdateLinks可选,指定文件中外部引用(链接)的方式。如果忽略该参数,那么将提示用户指定如何更新链接。指定值为0将不更新外部引用(链接),指定值为1将更新外部引用(链接)但不更新远程引用(链接),指定值为2将更新远程引用(链接)但不更新外部引用(链接),指定值为3将更新外部引用(链接)。

参数ReadOnly可选,如果设置其值为True,将在只读模式下打开工作簿。

参数Format可选,如果打开的是文本文件,那么该参数指定分隔符;如果忽略该参数,那么使用当前分隔符。可以指定下列值来确定文件的分隔符:1代表Tab,2代表逗号,3代表空格,4代表分号,5代表Nothing,6代表自定义分隔符。

参数Password可选,指定打开受保护工作簿时需要的密码。如果忽略该参数但是工作簿受密码保护,则会提示用户输入密码。

参数Delimiter可选,如果打开的文件是文本文件且参数Format是6,那么该参数指定用于作为分隔符的字符。例如,对于tab键使用Chr(9),对于逗号使用“,”,对于分号使用“;”,对于自定义字符串,仅使用其第一个字符。

其他参数使用不多,可参见Excel VBA帮助。

示例代码1:基于现有工作簿创建新工作簿

下面的代码打开工作簿excelvba81.xlsm。

Sub testWBOpen()

Workbooks.OpenFilename:='I:\09. Excel\01. 解读Excel VBA\Excel VBA解读(81):工作表事件示例\excelvba81.xlsm'

End Sub

打开后的工作簿excelvba81.xlsm成为当前工作簿。

示例代码2:将打开的工作簿赋值给变量

下面的代码将打开的工作簿赋给对象变量。

Sub testWBOpen1()

Dim wb As Workbook

Set wb = Workbooks.Open(Filename:='I:\09. Excel\01. 解读Excel VBA\excelvbaSample.xlsm')

End Sub

打开工作簿excelvbaSample.xlsm并将该工作簿赋值给变量wb。在代码中,可以直接使用对象变量wb来操作该工作簿。

示例代码3:测试是否已经打开了工作簿

下面的自定义函数blnWBOpen检查指定名称的工作簿是否已经被打开。

119663480_1_20171222075258236

代码首先将对工作簿的引用赋值给对象变量,然后检查是否赋值成功。如果找到指定的工作簿,blnWBOpen函数返回True,否则返回False。

代码使用On Error Resume Next语句确保在没有找到指定的工作簿时不会发生运行时错误。

使用下面的代码测试blnWBOpen函数:

119663480_2_20171222075258314

下面的自定义函数blnWBOpen1也可以用来检查指定名称的工作簿是否已被打开:

119663480_3_20171222075258361

还可以使用下面的自定义函数blnWBOpen2检查指定名称的工作簿是否已被打开:

119663480_4_20171222075258736

本文为原创文章,转载请注明出处。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/625202
推荐阅读
相关标签
  

闽ICP备14008679号