VBA常用技巧
目录
VBA常用技巧 1
第3章 Wordbook(工作簿)对象 2
技巧1 工作簿的引用方法 2
1-1 使用工作簿的名称 2
1-2 使用工作簿的索引号 2
1-3 使用ThisWorkbook 3
1-4 使用ActiveWorkbook 4
技巧2 新建工作簿文件 4
技巧3 打开指定的工作簿 6
技巧4 判断指定工作簿是否打开 9
4-1 遍历Workbooks集合方法 9
4-2 错误处理方法 10
技巧5 禁用宏则关闭工作簿 10
技巧6 关闭工作簿不显示保存对话框 14
6-1 使用Close方法关闭工作簿 14
6-2 单击工作簿关闭按钮关闭工作簿 16
技巧7 禁用工作簿的关闭按钮 16
技巧8 保存工作簿的方法 18
8-1 使用Save方法 18
8-2 直接保存为另一文件名 18
8-3 保存工作簿副本 18
技巧9 保存指定工作表为工作簿文件 19
技巧10 打印预览时不触发事件 21
技巧11 设置工作簿文档属性信息 23
技巧12 不打开工作簿取得其他工作簿数据 24
12-1 使用公式 24
12-2 使用GetObject函数 25
12-3 隐藏Application对象 26
12-4 使用ExecuteExcel4Macro方法 27
12-5 使用SQL连接 28
技巧13 返回窗口的可视区域地址 29
第3章 Wordbook(工作簿)对象
技巧1 工作簿的引用方法
VBA中,在不同的工作簿之间转换需要指定引用的工作簿,通常有下面几种方法。
1-1 使用工作簿的名称
工作簿名称是指Excel文件的文件名,可以使用Workbooks集合引用方式来引用工作簿,如下面的代码所示。
#001 Sub WbPath ()
#002 MsgBox "名称为:" & Workbooks("工作簿的引用方法.xls").Path
#003 End Sub
代码解析:
WbPath过程显示工作簿“工作簿的引用方法”的路径。应用于Workbook对象的Path属性将完整路径返回给应用程序,语法如下:
expression.Path
参数expression是必需的,一个有效的对象。
运行WbPath过程结果如图 401所示。
图 401 返回工作簿完整路径
1-2 使用工作簿的索引号
工作簿索引号是指工作簿打开的顺序,Excel根据工作簿打开的顺序以1开始进行编号。下面的代码显示应用程序打开的第一个工作簿的名称。
#001 Sub WbName()
#002 MsgBox "第一个打开的工作簿名字为:" & Workbooks(1).Name
#003 End Sub
代码解析:
WbName过程显示应用程序打开的第一个工作簿的名称。应用于Workbook对象的Name属性返回对象的名称,语法如下:
vba做excel窗体录入教程expression.Name
参数expression是必需的,一个有效的对象。
运行WbName过程结果如图 402所示。
图 402 返回工作簿名称
如果需要返回包含完整路径的工作簿名称则使用Workbook对象的FullName属性,如下面的代码所示。
#001 Sub WbFullName()
#002 MsgBox "包括完整路径的工作簿名称为:" & Workbooks(1).FullName
#003 End Sub
WbFullName过程显示应用程序打开的第一个工作簿的完整路径和名称。FullName属性返回对象的名称,包括其磁盘路径的字符串,此属性等价于在Path属性后加上当前文件系统的分隔符,然后加上Name属性。
运行WbFullName过程结果如图 403所示。
图 403 返回包含完整路径的工作簿名称
1-3 使用ThisWorkbook
使用ThisWorkbook代表当前宏代码运行的工作簿,如下面的代码所示。
#001 Sub WbClose()
#002 ThisWorkbook.Close SaveChanges:=False
#003 End Sub
代码解析:
WbThis过程使用Close方法关闭当前宏代码运行的工作簿,不保存对工作簿的任何更改。关于应用于Workbook对象的Close方法请参阅技巧45-1。
注意 本属性仅可在 Microsoft Excel内使用。不能使用此属性访问任何其他应用程序的工作簿。
1-4 使用ActiveWorkbook
使用ActiveWorkbook代表活动窗口(最上面的窗口)的工作簿,如下面的代码所示。
#001 Sub WbActive()
#002 MsgBox "当前活动工作簿名字为:" & ActiveWorkbook.Name
#003 End Sub
代码解析:
WbActive过程显示活动工作簿的名称,ActiveWorkbook属性返回一个Workbook对象,该对象代表活动窗口(最上面的窗口)的工作簿。如果没有打开任何窗口或者活动窗口为信息窗口或剪贴板窗口,则返回 Nothing。
运行WbActive过程结果如图 404所示。
图 404 返回活动工作簿名称
技巧2 新建工作簿文件
在VBA中使用Add方法新建工作簿,如下面的代码所示。
#001 Sub AddNowbook()
#002 Dim Nowbook As Workbook
#003 Dim ShName As Variant
#004 Dim Arr 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.Add
#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 Application.SheetsInNewWorkbook = myNewWorkbook
#025 End Sub
代码解析:
AddNowbook过程使用Add方法建立新的工作簿并对新建工作簿进行操作。
第2行到第6行代码声明变量类型。
第7行代码保存Excel自动插入到新工作簿中的工作表数目。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论