ExcelVBA常用技巧Wordbook对象.doc
《ExcelVBA常用技巧Wordbook对象.doc》由会员分享,可在线阅读,更多相关《ExcelVBA常用技巧Wordbook对象.doc(30页珍藏版)》请在咨信网上搜索。
1、VBA常用技巧目录VBA常用技巧1第3章Wordbook(工作簿)对象2技巧1工作簿的引用方法21-1使用工作簿的名称21-2使用工作簿的索引号21-3使用ThisWorkbook31-4使用ActiveWorkbook4技巧2新建工作簿文件4技巧3打开指定的工作簿6技巧4判断指定工作簿是否打开94-1遍历Workbooks集合方法94-2错误处理方法10技巧5禁用宏则关闭工作簿10技巧6关闭工作簿不显示保存对话框146-1使用Close方法关闭工作簿146-2单击工作簿关闭按钮关闭工作簿16技巧7禁用工作簿的关闭按钮16技巧8保存工作簿的方法188-1使用Save方法188-2直接保存为另一
2、文件名188-3保存工作簿副本18技巧9保存指定工作表为工作簿文件19技巧10打印预览时不触发事件21技巧11设置工作簿文档属性信息23技巧12不打开工作簿取得其他工作簿数据2412-1使用公式2412-2使用GetObject函数2512-3隐藏Application对象2612-4使用ExecuteExcel4Macro方法2712-5使用SQL连接28技巧13返回窗口的可视区域地址29第3章 Wordbook(工作簿)对象技巧1 工作簿的引用方法VBA中,在不同的工作簿之间转换需要指定引用的工作簿,通常有下面几种方法。1-1 使用工作簿的名称工作簿名称是指Excel文件的文件名,可以使用
3、Workbooks集合引用方式来引用工作簿,如下面的代码所示。#001 Sub WbPath ()#002 MsgBox 名称为: & Workbooks(工作簿的引用方法.xls).Path#003 End Sub代码解析:WbPath过程显示工作簿“工作簿的引用方法”的路径。应用于Workbook对象的Path属性将完整路径返回给应用程序,语法如下:expression.Path参数expression是必需的,一个有效的对象。运行WbPath过程结果如图 401所示。图 11返回工作簿完整路径1-2 使用工作簿的索引号工作簿索引号是指工作簿打开的顺序,Excel根据工作簿打开的顺序以1开
4、始进行编号。下面的代码显示应用程序打开的第一个工作簿的名称。#001 Sub WbName()#002 MsgBox 第一个打开的工作簿名字为: & Workbooks(1).Name#003 End Sub代码解析:WbName过程显示应用程序打开的第一个工作簿的名称。应用于Workbook对象的Name属性返回对象的名称,语法如下:expression.Name参数expression是必需的,一个有效的对象。运行WbName过程结果如图 402所示。图 12返回工作簿名称如果需要返回包含完整路径的工作簿名称则使用Workbook对象的FullName属性,如下面的代码所示。#001 Su
5、b WbFullName()#002 MsgBox 包括完整路径的工作簿名称为: & Workbooks(1).FullName#003 End SubWbFullName过程显示应用程序打开的第一个工作簿的完整路径和名称。FullName属性返回对象的名称,包括其磁盘路径的字符串,此属性等价于在Path属性后加上当前文件系统的分隔符,然后加上Name属性。运行WbFullName过程结果如图 403所示。图 13返回包含完整路径的工作簿名称1-3 使用ThisWorkbook使用ThisWorkbook代表当前宏代码运行的工作簿,如下面的代码所示。#001 Sub WbClose()#002
6、 ThisWorkbook.Close SaveChanges:=False#003 End Sub代码解析:WbThis过程使用Close方法关闭当前宏代码运行的工作簿,不保存对工作簿的任何更改。关于应用于Workbook对象的Close方法请参阅技巧6-1。注意 本属性仅可在 Microsoft Excel内使用。不能使用此属性访问任何其他应用程序的工作簿。1-4 使用ActiveWorkbook使用ActiveWorkbook代表活动窗口(最上面的窗口)的工作簿,如下面的代码所示。#001 Sub WbActive()#002 MsgBox 当前活动工作簿名字为: & ActiveWor
7、kbook.Name#003 End Sub代码解析:WbActive过程显示活动工作簿的名称,ActiveWorkbook属性返回一个Workbook对象,该对象代表活动窗口(最上面的窗口)的工作簿。如果没有打开任何窗口或者活动窗口为信息窗口或剪贴板窗口,则返回 Nothing。运行WbActive过程结果如图 404所示。图 14返回活动工作簿名称技巧2 新建工作簿文件在VBA中使用Add方法新建工作簿,如下面的代码所示。#001 Sub AddNowbook()#002 Dim Nowbook As Workbook#003 Dim ShName As Variant#004 Dim A
8、rr As Variant#005 Dim i As Integer#006 Dim myNewWorkbook As Integer#007 myNewWorkbook = Application.SheetsInNewWorkbook#008 ShName = Array(余额, 单价, 数量, 金额)#009 Arr = Array(01月, 02月, 03月, 04月, 05月, 06月, 07月, 08月, 09月, 10月, 11月, 12月)#010 Application.SheetsInNewWorkbook = 4#011 Set Nowbook = Workbooks.A
9、dd#012 With Nowbook#013 For i = 1 To 4#014 With .Sheets(i)#015 .Name = ShName(i - 1)#016 .Range(B1).Resize(1, UBound(Arr) + 1) = Arr#017 .Range(A2) = 品名#018 End With#019 Next#020 .SaveAs Filename:=ThisWorkbook.Path & & 存货明细.xls#021 .Close Savechanges:=True#022 End With#023 Set Nowbook = Nothing#024
10、Application.SheetsInNewWorkbook = myNewWorkbook#025 End Sub代码解析:AddNowbook过程使用Add方法建立新的工作簿并对新建工作簿进行操作。第2行到第6行代码声明变量类型。第7行代码保存Excel自动插入到新工作簿中的工作表数目。第8、9行代码将数组元素赋值给变量。第10行代码将Application对象的SheetsInNewWorkbook属性设置为4,在新建工作簿时插入4张工作表。第11行代码使用Add方法建立新的工作簿,应用于Workbooks对象的Add方法新建工作簿,新建的工作簿将成为活动工作簿。第12行到第22行代码
11、操作新建工作簿。其中第15行到第17行代码将新建工作簿的工作表进行重命名并给单元格赋值。第20行代码使用SaveAs方法将新建工作簿重命名为“存货明细.xls”保存在同一目录中。关于SaveAs方法请参阅技巧8-2。第21行代码使用Close方法关闭工作簿。关于Close方法请参阅技巧6-1。第24行代码恢复工作簿的默认设置。运行AddNowbook过程将在工作簿同一目录中新建“存货明细.xls”工作簿,新建工作簿格式如图 411所示。图 21新建“存货明细.xls”工作簿格式注意 本例中没有考虑工作簿同名因素,如果目录中已有“存货明细.xls”工作簿,运行时会显示如图 412所示的对话框,选
12、择“是”即可,否则将会出错。图 22同名提示技巧3 打开指定的工作簿VBA中使用Open方法打开一个工作簿,如下面的代码所示。#001 Sub Openfile()#002 Dim x As Integer#003 For x = 1 To Workbooks.Count#004 If Workbooks(x).Name = 123.xls Then#005 MsgBox 123工作簿已经打开!#006 Exit Sub#007 End If#008 Next#009 Workbooks.Open ThisWorkbook.Path & 123.xls#010 End Sub代码解析:Open
13、file过程打开同一目录中的“123”工作簿。第3行代码利用Workbook对象的Count属性取得打开工作簿的数目,使用For.Next 语句遍历所有打开的工作簿。遍历工作簿除了使用For.Next 语句外还可以使用For.Each.Next语句来遍历Workbook对象集合中的所有元素。第4行到第8行代码遍历所有打开的工作簿,如果Workbook对象集合中存在“123”工作簿,说明“123”工作簿已打开,则显示一条如图 421所示的提示信息。图 31工作簿已打开提示第9行代码如果“123”工作簿没有被打开则使用Open方法打开“123”工作簿。Open方法应用于Workbooks 对象时打
14、开一个工作簿,语法如下:expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)参数expression是必需的,返回一个Workbooks对象参数FileName是必需的,要打开的工作簿的文件名。参数UpdateLinks是可选的,指定文件中链接的更新方式。如果省略本参数,则
15、提示用户选择链接的更新方式。否则,该参数的取值应为表格 421中的某个值。值描述0不更新任何引用1更新外部引用,但不更新远程引用2更新远程引用,但不更新外部引用3同时更新远程引用和外部引用表格 31UpdateLinks参数值参数ReadOnly是可选的,如果该值为True,则以只读模式打开工作簿。参数Format是可选的,如果Microsoft Excel正在打开一个文本文件,则该参数用于指定分隔字符,如表格 422所示。如果省略本参数,则使用当前的分隔符。值分隔符1制表符2逗号3空格4分号5没有分隔符6自定义字符(请参阅 Delimiter 参数)表格 32Format参数值参数Passw
16、ord是可选的,该字符串指定打开一个受保护工作簿的密码。如果省略该参数并且指定工作簿已设置密码,则提示用户输入密码。参数WriteResPassword是可选的,该字符串为一个写保护工作簿的写入权密码。如果省略该参数并且指定工作簿已设置密码,则提示用户输入密码。参数IgnoreReadOnlyRecommended是可选的,如果该值为True,则设置Microsoft Excel不显示建议只读消息(如果该工作簿以“建议只读”选项保存)。参数Origin是可选的,如果文件为文本文件,则该参数用于指示该文件来源于何种操作系统。参数Delimiter是可选的,如果该文件为文本文件并且Format参数
17、为 6,则此参数用于指定用作分隔符的字符。参数Editable是可选的,如果该文件为Microsoft Excel 4.0加载宏,则该参数的值为True时可打开该加载宏以便在窗口中看到。如果该参数的值为False或者省略该参数,则该加载宏以隐藏方式打开,并且无法设为可见。参数Notify是可选的,当该文件不能以可读写模式打开时,如果该参数的值为True,则可将该文件添加到文件通知列表。参数Converter是可选的,打开文件时试用的第一个文件转换器的索引号。参数AddToMru是可选的,如果该值为True,则将该工作簿添加到最近使用的文件列表中。默认值为False。参数Local是可选的,如果
18、该值为True,则以Microsoft Excel(包括控制面版设置)的语言保存文件。如果该值为False(默认值),则以 Visual Basic for Applications (VBA)的语言保存文件,其中Visual Basic for Applications (VBA)为典型安装的美国英语版本,除非VBA项目的Workbooks.Open来自旧的国际化的XL5/95 VBA项目。参数CorruptLoad是可选的,可为以下常量之一:xlNormalLoad、xlRepairFile 和 xlExtractData。如果未指定任何值,则默认值通常为普通状态。技巧4 判断指定工作簿是
19、否打开4-1 遍历Workbooks集合方法通过遍历当前应用程序所有已打开的工作簿文件(Workbooks集合),判断指定名称的工作簿是否打开,如下面的代码所示。#001 Sub WorkbookIsOpen_1()#002 Dim Wb As Workbook#003 Dim myWb As String#004 myWb = Excel Home.xls#005 For Each Wb In Workbooks#006 If Wb.Name = myWb Then#007 MsgBox 工作簿 & myWb & 已经被打开!#008 Exit Sub#009 End If#010 Next
20、#011 MsgBox 工作簿 & myWb & 没有被打开!#012 End Sub代码解析:WorkbookIsOpen_1过程通过遍历当前应用程序中所有已打开的工作簿文件(Workbooks集合),判断“Excel Home”工作簿是否打开。第5行代码使用For.Each.Next语句来遍历Workbook对象集合中的所有元素。第6行到第8行代码如果Workbook对象集合包含“Excel Home.xls”工作簿名称,说明文件已打开,使用Exit Sub语句结束代码的运行。第11行代码如果运行到此行代码说明“Excel Home.xls”工作簿没有被打开。4-2 错误处理方法使用错误处
21、理程序判断指定名称的工作簿是否打开,如下面的代码所示。#001 Sub WorkbookIsOpen_2()#002 Dim Wb As Workbook#003 Dim myWb As String#004 myWb = Excel Home.xls#005 Err.Clear#006 On Error GoTo line#007 Set Wb = Application.Workbooks(myWb)#008 MsgBox 工作簿 & myWb & 已经被打开!#009 Set Wb = Nothing#010 Exit Sub#011 line:#012 MsgBox 工作簿 & myW
22、b & 没有被打开!#013 Set Wb = Nothing#014 End Sub代码解析:WorkbookIsOpen_2过程使用错误处理程序判断“Excel Home”工作簿是否打开。第5行代码使用Clear方法清除Err对象的所有属性设置。第6行代启动错误处理程序,如果第7行代码发生错误则执行line行后面的代码。第7行代码使用Set语句将Workbook对象引用赋给变量Wb,如果 “Excel Home.xls”工作簿没有被打开将发生下标越界错误,此时执行第12、13行代码,否则执行第8、9行代码。技巧5 禁用宏则关闭工作簿通常情况下,当应用程序的宏安全性的安全级别设置为“中”时,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ExcelVBA 常用 技巧 Wordbook 对象
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。