博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【VBA编程】14.操作工作簿对象
阅读量:7264 次
发布时间:2019-06-29

本文共 3471 字,大约阅读时间需要 11 分钟。

【访问工作簿】

对已经打开的工作簿,可以通过使用索引号来访问工作簿,也可以通过名称来访问工作簿

【代码区域】

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").nameEnd Sub

【打印结果】

现在打开的工作簿为:

【获取工作簿信息】

【代码区域】

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.HasPasswordEnd Sub

【结果展示】

【新建工作簿】

【代码区域】

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 = NothingEnd 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(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 = NothingEnd Sub

【效果展示】

                                                        

                                                   

【使用保存对话框保存工作簿

【代码区域】

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 = NothingEnd 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 = 600        .Height = 300        MsgBox "设置窗口大小之前:" & vbLf & "窗口状态为:" & CStr(winstate) & vbLf & "窗口宽度为:" & CStr(winwidth) & vbLf & "窗口高度为:" & CStr(winheight) & vbLf & "设置窗口大小之后:" & vbLf & "窗口状态为:" & CStr(.WindowState) & vbLf & "窗口宽度为:" & CStr(.Width) & vbLf & "窗口高度为:" & CStr(.Height)    End WithEnd Sub

【效果展示】

 

【冻结窗口】

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

下面我们使用宏来自定义冻结的行

【代码区域】

 

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 = NothingEnd 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

 

转载地址:http://lerdm.baihongyu.com/

你可能感兴趣的文章
springIOC、AOP的一些注解
查看>>
用为知笔记发博客
查看>>
Windows 8下完美使用Virtual PC 2007(virtual pc 2007 64 win8 兼容性)
查看>>
JavaScript中函数参数的值传递和引用传递
查看>>
面向对象高级编程(上)-- 第二周学习笔记(Boolan)
查看>>
主城地图1.0(4.7)
查看>>
其他数据类型转换成String
查看>>
SWAP_JOIN_INPUTS Oracle Hint(处理hash join强制大表(segment_size大)作为被驱动表)
查看>>
AI历史和哲学基础浅谈
查看>>
java项目显示红叉,程序却没有错误
查看>>
angularJS遇到的坑
查看>>
异常处理汇总-数据库系列
查看>>
Linux安装 jdk&maven
查看>>
msxfs.dll函数加载代码
查看>>
作业——10 分布式文件系统HDFS 练习
查看>>
前端知识汇总【转】
查看>>
Python With 用法
查看>>
Little C Loves 3 I
查看>>
javascript作用域、闭包、对象与原型链
查看>>
快速幂
查看>>