Excel-VBA 快速上手(五、工作簿对象、Excel 文件的常用操作)


一、工作簿对象


工作簿指的是 Excel 文件,vba 提供了专门操作 Excel 文件的对象 Workbook,既工作簿对象,通过该对象,我们
可以获取到 Excel 文件的信息,以及可以对 Excel 文件进行处理,如:新建、保存、删除、复制等


1.1 获取 Excel 文件对应的工作簿对象


根据场景不同,获取工作簿对象的方式也不相同,本文列举几个常见的获取工作簿对象的方式

1. 通过 Excel 的打开顺序,获取工作簿对象

通过 Excel 的打开顺序,获取 Excel 文件对应的工作簿对象,顺序从 1 开始累计,比如先打开 a.xls 又打开 b.xls,
那么 a.xls 的顺序就是1,b.xls 的顺序就是 2,核心语法: Workbooks(N)

Public Sub main()
  Dim wb As Workbook
  Set wb = Workbooks(1)
  Debug.Print wb.Name
End Sub

2. 通过已打开的 Excel 文件的文件名,获取工作簿对象

通过已打开的 Excel 文件的文件名,获取 Excel 文件对应的工作簿对象,核心语法: Workbooks(Name)

Public Sub main()
  Dim wb As Workbook
  Set wb = Workbooks("学习VBA")
  Debug.Print wb.Name
End Sub

3. 获取正处于激活状态的 Excel 文件的工作簿对象

获取正处于激活状态的 Excel 文件的工作簿对象,核心语法: ActiveWorkbook,激活状态可以简单理解为,当有
多个 Excel 文件打开时,目前正处于显示的那个 Excel 文件即为激活状态

Public Sub main()
  Dim wb As Workbook
  Set wb = ActiveWorkbook
  Debug.Print wb.Name
End Sub

4. 获取正在执行代码的工作簿对象

获取正在运行代码的 Excel 文件所对应的工作簿对象,核心语法: ThisWorkbook,如果当前是 a.xls 在执行 vba 代
码,那么 ThisWorkbook 返回的就是 a.xls 对应的工作簿对象

Public Sub main()
  Dim wb As Workbook
  Set wb = ThisWorkbook
  Debug.Print wb.Name
End Sub

5. 打开 Excel 文件并获取其对应的工作簿对象

打开 Excel 文件并获取其对应的工作簿对象,核心语法: Workbooks.Open(文件路径)

Public Sub main()
  Dim wb As Workbook
  Set wb = Workbooks.Open("C:\Users\Administrator\Desktop\测试.xls")
End Sub

二、工作簿对象操作 Excel 的常见用法


2.1. 新建并打开 Excel 文件

Public Sub main()
  '创建Excel文件
  Dim wb As Workbook
  Set wb = Workbooks.Add
  wb.SaveAs "C:\Users\Administrator\Desktop\新创建的Excel文件.xls"
  '给新创建的Excel文件的第一个sheet的第一个单元格添加内容
  wb.Sheets("sheet1").Range("a1") = "这是新创建的Excel文件"
End Sub

2.2. 关闭 Excel 文件

代码中第 6 行的 wb.Close True 是关闭并保存的意思,如果仅关闭不保存就写 False 就可以

Public Sub main()
  '打开Excel文件
  Dim wb As Workbook
  Set wb = Workbooks.Open("C:\Users\Administrator\Desktop\测试.xls")
  '关闭Excel文件
  wb.Close True
End Sub

2.3. 保存 Excel 文件

Public Sub main()
  '打开Excel文件
  Dim wb As Workbook
  Set wb = Workbooks.Open("C:\Users\Administrator\Desktop\测试.xls")
  '保存Excel文件
  wb.Save
End Sub

2.4. Excel 文件另存为

Public Sub main()
  '打开Excel文件
  Dim wb As Workbook
  Set wb = Workbooks.Open("C:\Users\Administrator\Desktop\测试.xls")
  '将Excel文件另存为
  wb.SaveCopyAs "C:\Users\Administrator\Desktop\测试2.xls"
End Sub

三、Excel 文件其他常见操作


3.1. 判断 Excel 是否存在

Public Sub main()
  If Len(Dir("C:\Users\Administrator\Desktop\测试2.xls")) = 0 Then
    Debug.Print "文件不存在!"
  Else
    Debug.Print "文件存在!"
  End If
End Sub

3.2. 判断 Excel 是否打开

主要是通过循环所有打开的 Excel 窗口来进行名称匹配

Public Sub main()
  Dim index As Integer
  For index = 1 To Windows.Count
    If Windows(index).Caption = "测试2.xls" Then
      Debug.Print "文件已被打开!"
      Exit For
    End If
  Next index
End Sub

3.3. 复制 Excel 文件

FileCopy 的第一个参数是源文件路径,第二个参数是复制后的目标路径

Public Sub main()
  FileCopy "C:\Users\Administrator\Desktop\测试.xls", "C:\Users\Administrator\Desktop\测试-复制后.xls"
End Sub

3.4. 删除 Excel 文件

Public Sub main()
  Kill "C:\Users\Administrator\Desktop\测试-复制后.xls"
End Sub
  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值