热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

本文主要介绍关于vba的知识点,对【Excel-VBA快速上手(五、工作簿对象、Excel文件的常用操作)】和【如何使用EXCEL的VBA函数进行编程】有兴趣的朋友可以看下由【三叔笔记】投稿的技术

本文主要介绍关于vba的知识点,对【Excel-VBA 快速上手(五、工作簿对象、Excel 文件的常用操作)】和【如何使用EXCEL的VBA函数进行编程】有兴趣的朋友可以看下由【三叔笔记】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的VBA-Excel相关技术问题。

如何使用EXCEL的VBA函数进行编程


文章目录 一、工作簿对象1.1 获取 Excel 文件对应的工作簿对象 二、工作簿对象操作 Excel 的常见用法2.1. 新建并打开 Excel 文件2.2. 关闭 Excel 文件2.3. 保存 Excel 文件2.4. Excel 文件另存为 三、Excel 文件其他常见操作3.1. 判断 Excel 是否存在3.2. 判断 Excel 是否打开3.3. 复制 Excel 文件3.4. 删除 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 "文件已被打开!"
    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

本文《Excel-VBA 快速上手(五、工作簿对象、Excel 文件的常用操作)》版权归三叔笔记所有,引用Excel-VBA 快速上手(五、工作簿对象、Excel 文件的常用操作)需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • Day2列表、字典、集合操作详解
    本文详细介绍了列表、字典、集合的操作方法,包括定义列表、访问列表元素、字符串操作、字典操作、集合操作、文件操作、字符编码与转码等内容。内容详实,适合初学者参考。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
author-avatar
aotu蛮
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有