【VBA编程】14.操作工作簿对象
【访问工作簿】
对已经打开的工作簿,可以通过使用索引号来访问工作簿,也可以通过名称来访问工作簿
【代码区域】
Sub 访问工作簿()
Dim counter As Integer
counter = Workbooks.Count
Debug.Print
Debug.Print "当前打开工作簿的数目为:" & CStr(counter)
Debug.Print "按索引号访问工作簿如下:"
Debug.Print "第一个工作簿是:" & Workbooks().name
Debug.Print "第一个工作簿是:" & Workbooks().name
Debug.Print "按名称访问工作簿如下:"
Debug.Print "第一个工作簿是:" & Workbooks("VBA.xlsm").name
Debug.Print "第一个工作簿是:" & Workbooks("TEST.xlsx").name
End Sub
【打印结果】
现在打开的工作簿为:


【获取工作簿信息】
【代码区域】
Sub 获取工作簿信息()
Dim wb As Workbook
Set wk = Workbooks()
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
【结果展示】

【新建工作簿】
【代码区域】
Sub 新建工作簿()
Dim wb As Workbook
Dim wk As Worksheet
Rem 设置初始化工作簿中默认的工作表数目
Application.SheetsInNewWorkbook =
Set wb = Workbooks.Add '新建工作簿
Set ws = wb.Sheets()
ws.name = "产品"
Set ws = wb.Sheets()
ws.name = "原料"
Rem 恢复初始工作簿中默认的工作表
Application.SheetsInNewWorkbook =
MsgBox "成功完成了新建工作簿!", vbOKOnly, "新建工作簿"
Set wb = Nothing
Set ws = Nothing
End Sub
【结果展示】


【使用对话框打开工作簿】
【代码区域】
Sub 使用对话框打开工作簿()
Dim fileInformation As String
fileInformation = Application.GetOpenFilename("Excle 工作簿(*.xlsx),*.xlsx")
End Sub
【结果展示】

【备份工作簿】
【代码区域】
Sub 备份工作簿()
Dim wk As Workbook
Dim mypath As String
Dim myfile As String
Dim filefull As String
Set wk = Workbooks()
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
【效果展示】


【使用保存对话框保存工作簿】
【代码区域】
Sub 使用保存对话框来保存文件()
Dim wk As Workbook
Dim fileinfo As String
Set wk = Workbooks()
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
【效果展示】


【设置工作簿窗口大小】
【代码区域】
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 =
.Height =
MsgBox "设置窗口大小之前:" & vbLf & "窗口状态为:" & CStr(winstate) & vbLf & "窗口宽度为:" & CStr(winwidth) & vbLf & "窗口高度为:" & CStr(winheight) & vbLf & "设置窗口大小之后:" & vbLf & "窗口状态为:" & CStr(.WindowState) & vbLf & "窗口宽度为:" & CStr(.Width) & vbLf & "窗口高度为:" & CStr(.Height)
End With
End Sub
【效果展示】


【冻结窗口】
在Excle中可以直接使用冻结窗口冻结,但是这个不是很方便

下面我们使用宏来自定义冻结的行
【代码区域】
Sub 冻结窗口()
Dim win As Window
Set win = Application.ActiveWindow
With win
.Split = True '冻结开关打开
.SplitColumn = '从第4列开始冻结
.SplitRow = '从第3行开始冻结
End With
win.FreezePanes = True '拆分冻结项打开
MsgBox "冻结完成!", vbOKOnly, "冻结窗口"
Set win = Nothing
End Sub
【效果展示】

【更改工作簿名称】
【代码区域】
Sub 更改工作簿名称()
Dim filename As String
filename = "C:\OLIVER.xlsx"
Name filename As "C:\OLIVER_附件.xlsx"
MsgBox ("工作簿名称修改完成"), vbOKOnly, "修改名称"
End Sub
【效果展示】


【关闭工作簿】
【代码区域】
Application.ActiveWorkbook.Close
Application.Quit
【VBA编程】14.操作工作簿对象的更多相关文章
- [VBA]汇总多个工作簿的指定工作表到同一个工作簿的指定工作表中
sub 汇总多个工作簿() Application.ScreenUpdating = False Dim wb As Workbook, f As String, l As String, n As ...
- 【VBA】打开关闭工作簿等
打开关闭工作簿等 1 Sub 打开工作簿() 2 Dim sFilePath As String 3 sFilePath = "D:\A.xls" 4 Dim oWB As Wor ...
- 【VBA】点击工作簿中的每个单元格,整行整列变色
需求描述 在点击单元格的时候,单元格所在行与列都变色显示 实现方案 打开Excle表格,按住ALT+F11 双击上图中的ThisWorkbook Private Sub Workbook_SheetS ...
- 【VBA编程】09.使用Excle集合对象
使用Workbooks工作簿集合.工作簿对象.工作表集合.工作表对象,并且观察使用Add方法前后工作簿与工作表数目的变化 [代码区域] Sub 测试集合工作簿() Dim wbs As Workboo ...
- 在Excel里如何将多个工作簿合并到一个工作簿中
在Excel里如何将多个工作簿合并到一个工作簿中 当你必须将多个工作簿合并到一个工作簿时,你遇到过麻烦吗?最让人心烦的就是需要合并的工作簿里有很多张工作表.有人能推荐方法解决这个问题吗? 利用VBA ...
- excel-合并多个Excel文件--VBA合并当前目录下所有Excel工作簿中的所有工作表
在网上找EXCEL多文件合并的方法,思路: 一.Linux 或者window+cmder,直接用命令行cat合并EXCEL文件,但是,需要安装辅助东西才能直接处理(也许也不可以,但是,可以用文件格式转 ...
- Excel VBA 从一个工作簿查找另一个一个工作簿中的一些内容复制到另外一个工作簿
帮朋友来写个Excel VBA 以前写过ASP,所以对vb略微熟悉,但VBA 没有仔细研究过. 以前只研究过 vba 写一个 计算个人所得税的程序. 这次写的功能也算是简单,但也耗费了两天的功夫. 需 ...
- Excel VBA入门(九)操作工作薄
虽然我前面讲过,在VBA中操作工作薄并不是件明智的事,但有些时候,还是避免不了要这么做.绝大多数情况下,我们要做的是获取到某个工作薄对象,并以此来获得其中的工作表对象,然后再对工作表中的数据进行处理. ...
- Excel VBA入门(五)Excel对象操作
本章是本系列教程的重点.但我觉得应该不是难点.从第零章开始到学完本章,应该可以把VBA用于实战中了. Excel对象主要有4个: 工作薄 Workbook 工作表 Worksheet 单元格区域 Ra ...
随机推荐
- Xamarin 中Visual Studio创建项目提示错误
Xamarin 中Visual Studio创建项目提示错误 错误信息:Object reference not set to an instance of an object 出现这种情况,是由于没 ...
- Codeforces #447 Div.2 Tutorial
Problem A:QAQ 给一个字符串,求出可非连续的QAQ序列有多少个. Analysis:比较水的一道题,记录每一个Q的位置,预处理A的个数即可 然而还是fst了,原因是未考虑一个Q都没有的极端 ...
- wannafly挑战赛14
第一次打wannafly..觉得自己好菜啊... 题目描述 在三维空间中,平面 x = 0, y = 0, z = 0,以及平面 x + y + z = K 围成了一个三棱锥. 整天与整数打交道的小明 ...
- 【斜率优化】Average
[UVa1451]Average 算法竞赛入门经典第8章8-9 ( P243 ) 题目大意:给定一个长度为N的01串,选择一个长度至少为L的连续子串,使序列平均值最大 (N<=100001) 题 ...
- python 多继承详解
class A(object): # A must be new-style class def __init__(self): print "enter A" print &qu ...
- Atom | 编辑器Atom的使用小结
文章目录 windows环境下 Atom工具使用apm Packages 推荐阅读 常用快捷键 windows环境下 Atom工具使用apm 在 Atom 的安装路径下找到 apm ,复制路径: 将该 ...
- ES6 标签模板
标签模板其实不是模板,而是函数调用的一种特殊形式."标签"指的是函数,紧跟在后面的模板字符串就是它的参数. var a = 5; var b = 10; tag `Hello ${ ...
- [转载]memcached 命令操作详解
转载:http://www.cnblogs.com/azheng007/p/3159345.html 一.存储命令 存储命令的格式: <command name> <key> ...
- 研究人员发现绝大部分酷派(Coolpad)手机暗藏后门(转)
隐私问题被曝光得越来越多,随着物联网的发展,只会变得越来越严重,不过从当前看来 ,国人对隐私的重视度还远没有国外,期待加强对隐私的保护策略. 转自:http://www.freebuf.com/n ...
- 定义serialVersionUID的作用与意义整理
实现java.io.Serializable这个接口是为序列化,serialVersionUID 用来表明实现序列化类的不同版本间的兼容性.如果你修改了此类, 要修改此值.否则以前用老版本的类序列化的 ...