【VBA编程】14.操作工作簿对象
2016-12-23 18:22
260 查看
【访问工作簿】
对已经打开的工作簿,可以通过使用索引号来访问工作簿,也可以通过名称来访问工作簿
【代码区域】
【打印结果】
现在打开的工作簿为:
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223162614698-395173968.png)
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223162709729-686231498.png)
【获取工作簿信息】
【代码区域】
【结果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223163349807-1235687862.png)
【新建工作簿】
【代码区域】
【结果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223164759339-2139279798.png)
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223164835511-519232657.png)
【使用对话框打开工作簿】
【代码区域】
【结果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223170012167-676836052.png)
【备份工作簿】
【代码区域】
【效果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223173527651-749124530.png)
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223173549073-1239071414.png)
【使用保存对话框保存工作簿】
【代码区域】
【效果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223174633792-1369686318.png)
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223174647136-951812938.png)
【设置工作簿窗口大小】
【代码区域】
【效果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223175814479-1118242594.png)
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223175839401-1194633811.png)
【冻结窗口】
在Excle中可以直接使用冻结窗口冻结,但是这个不是很方便
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223180143573-1852887472.png)
下面我们使用宏来自定义冻结的行
【代码区域】
【效果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223180755214-1944765838.png)
【更改工作簿名称】
【代码区域】
【效果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223181642479-1205446199.png)
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223181700011-1272043077.png)
【关闭工作簿】
【代码区域】
对已经打开的工作簿,可以通过使用索引号来访问工作簿,也可以通过名称来访问工作簿
【代码区域】
Sub 访问工作簿() Dim counter As Integer counter = Workbooks.Count Debug.Print Debug.Print "当前打开工作簿的数目为:" & CStr(counter) Debug.Print "按索引号访问工作簿如下:" Debug.Print "第一个工作簿是:" & Workbooks(1).name Debug.Print "第一个工作簿是:" & Workbooks(2).name Debug.Print "按名称访问工作簿如下:" Debug.Print "第一个工作簿是:" & Workbooks("VBA.xlsm").name Debug.Print "第一个工作簿是:" & Workbooks("TEST.xlsx").name End Sub
【打印结果】
现在打开的工作簿为:
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223162614698-395173968.png)
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223162709729-686231498.png)
【获取工作簿信息】
【代码区域】
Sub 获取工作簿信息() Dim wb As Workbook Set wk = Workbooks(1) wk.Activate Debug.Print Debug.Print "当前Excle文档的信息如下:" Debug.Print "工作簿的名称为:" & wk.name Debug.Print "工作簿的保存位置为:" & wk.Path Debug.Print "工作簿是否只读:" & CStr(wk.ReadOnly) Debug.Print "工作簿的全名为:" & wk.FullName Debug.Print "工作簿是否需要密码:" & wk.HasPassword End Sub
【结果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223163349807-1235687862.png)
【新建工作簿】
【代码区域】
Sub 新建工作簿() Dim wb As Workbook Dim wk As Worksheet Rem 设置初始化工作簿中默认的工作表数目 Application.SheetsInNewWorkbook = 2 Set wb = Workbooks.Add '新建工作簿 Set ws = wb.Sheets(1) ws.name = "产品" Set ws = wb.Sheets(2) ws.name = "原料" Rem 恢复初始工作簿中默认的工作表 Application.SheetsInNewWorkbook = 3 MsgBox "成功完成了新建工作簿!", vbOKOnly, "新建工作簿" Set wb = Nothing Set ws = Nothing End Sub
【结果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223164759339-2139279798.png)
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223164835511-519232657.png)
【使用对话框打开工作簿】
【代码区域】
Sub 使用对话框打开工作簿() Dim fileInformation As String fileInformation = Application.GetOpenFilename("Excle 工作簿(*.xlsx),*.xlsx") End Sub
【结果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223170012167-676836052.png)
【备份工作簿】
【代码区域】
Sub 备份工作簿() Dim wk As Workbook Dim mypath As String Dim myfile As String Dim filefull As String Set wk = Workbooks(1) wk.Activate mypath = wk.Path myfile = "备份" + wk.name filefull = mypath + "\" + myfile wk.SaveCopyAs filefull 'vbLf 换行 MsgBox "备份成功!" & vbLf & "备份文件于" & mypath & "\" & & myfile & vbLf & "备份文件的全名为:" & filefull, vbOKOnly, "备份工作簿" Set wk = Nothing End Sub
【效果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223173527651-749124530.png)
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223173549073-1239071414.png)
【使用保存对话框保存工作簿】
【代码区域】
Sub 使用保存对话框来保存文件() Dim wk As Workbook Dim fileinfo As String Set wk = Workbooks(1) wk.Activate fileinfo = Application.GetSaveAsFilename(exclefile, "Excle 工作簿(*.xlsm),*.xlsx") If fileinfo = "False" Then MsgBox "请输入工作簿名字", vbOKOnly, "保存工作簿" Exit Sub End If wk.SaveAs Filename:=fileinfo Set wk = Nothing End Sub
【效果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223174633792-1369686318.png)
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223174647136-951812938.png)
【设置工作簿窗口大小】
【代码区域】
Sub 设置工作簿窗口大小() Dim win As Window Dim windate As Long Dim winwidth As Long Dim winheight As Double Set win = Application.ActiveWindow win.Activate With win winstate = .WindowState winwidth = .Width winheight = .Height '设置窗口状态 .WindowState = xlNormal .Width = 600 .Height = 300 MsgBox "设置窗口大小之前:" & vbLf & "窗口状态为:" & CStr(winstate) & vbLf & "窗口宽度为:" & CStr(winwidth) & vbLf & "窗口高度为:" & CStr(winheight) & vbLf & "设置窗口大小之后:" & vbLf & "窗口状态为:" & CStr(.WindowState) & vbLf & "窗口宽度为:" & CStr(.Width) & vbLf & "窗口高度为:" & CStr(.Height) End With End Sub
【效果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223175814479-1118242594.png)
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223175839401-1194633811.png)
【冻结窗口】
在Excle中可以直接使用冻结窗口冻结,但是这个不是很方便
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223180143573-1852887472.png)
下面我们使用宏来自定义冻结的行
【代码区域】
Sub 冻结窗口() Dim win As Window Set win = Application.ActiveWindow With win .Split = True '冻结开关打开 .SplitColumn = 4 '从第4列开始冻结 .SplitRow = 3 '从第3行开始冻结 End With win.FreezePanes = True '拆分冻结项打开 MsgBox "冻结完成!", vbOKOnly, "冻结窗口" Set win = Nothing End Sub
【效果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223180755214-1944765838.png)
【更改工作簿名称】
【代码区域】
Sub 更改工作簿名称() Dim filename As String filename = "C:\OLIVER.xlsx" Name filename As "C:\OLIVER_附件.xlsx" MsgBox ("工作簿名称修改完成"), vbOKOnly, "修改名称" End Sub
【效果展示】
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223181642479-1205446199.png)
![](https://images2015.cnblogs.com/blog/832918/201612/832918-20161223181700011-1272043077.png)
【关闭工作簿】
【代码区域】
Application.ActiveWorkbook.Close Application.Quit
相关文章推荐
- vba编程不知道该使用什么对象属性方法实现操作的时候用宏录制来查阅代码
- [VBA]Ch03 工作簿(Workbook)基本操作应用示例(一)太精华了
- [VBA]Ch03 工作簿(Workbook)基本操作应用示例(一)
- Android网络编程之操作JSON对象库-Gson
- 14javascript操作style对象
- 第八课等于之集合对象的操作——C#计算器编程教学
- Java中使用JCOM操作Office对象-Java基础-Java-编程开发
- 【VBA编程】11.Application对象
- Excel-如何用VBA编程操作Pivot Table
- 跟着百度学PHP[4]OOP面对对象编程-14-克隆对象__clone()方法
- VB编程操作AutoCAD块对象
- VBA操作文件四大方法之一--Excel对象方法
- VBA--word操作的关键对象Range 和 Section
- vba基本操作 -- 工作簿操作
- C语言编程基础-14文件位置指针 宏操作 多文件编程
- OutLook的VBA基本对象及操作
- 《C++ Primer 4 Answer Book》 整理[14]——第15章 面向对象编程
- Python一天入门14:面向对象的编程1-对象
- c# 数据库编程(利用DataSet 和 DataAdaper对象操作数据库--单表操作)
- 【VBA编程】09.使用Excle集合对象