type
status
date
slug
summary
tags
category
icon
password
Property
Jan 9, 2025 04:55 PM
URL
1. 什么是对象?
对于一个 Excel 文件,常用的三个就是
- Excel 文件本身
- Excel 工作薄 Sheet
- Excel 中的单元格
这三个也被称之为 对象(object),如何理解对象呢?简单来说就是组成 Excel 的要素,还有一些常见的对象
- Chart
code
使用代码创建的 Excel 图表
- OLE 对象 我们可以使用 chemdraw 绘制分子然后嵌入到 Excel 中,这个就是 OLE 对象
对于更多详细的Excel对象模型信息,可以参考微软官方文档:
还有其他的各种对象
Excel 中有几百个对象,我们目前可以先掌握上面的三个,后续有需要可以查官方文档。
Excel 文件对象:WorkBooks
Excel 工作薄:Sheets
单元格:Range/Cells
现在让我们思考以下问题:
- 如何获取当前 Excel 文件的路径呢?
- 不打开 Excel 文件的情况下,如何知道文件中有多少个工作表以及它们的名称?
- 如果 Excel 文件中包含大量单元格,如何获取特定单元格(比如 A10000)的值?
要解决这些问题,我们需要了解对象的属性
2. 对象的属性
在了解对象的属性之前,我们需要知道如何运行 Excel VBA,打开 Excel ,然后
alt + F11 就能打开 VBA 编辑器了,然后点击插入模块就行了
如何获取当前 Excel 文件的路径呢?
上面代码中
ActiveWorkbook
代表的是当前正在操作的的 Excel 文件,而 Path 就是 ActiveWorkbook
的属性。,也就是 ActiveWorkbook
的路径不打开 Excel 文件的情况下,如何知道某个 Excel 文件中有多少个工作表以及它们的名称?
这个问题实现起来可能比较困难,我们或许可以搞点简单的,获取倒数第1个工作薄的名字
让我为您提供一个获取最后一个工作表名称的代码示例:
这个逻辑是首先用 Sheets.Count 获取当前 Excel 文件中有多个个工作薄,然后使用 Sheets(Sheets.Count).Name 获取最后一个工作薄的名字,这种做法在工作薄很多的时候不错,后续我们学习了 For 循环,可以一次性获取所有的工作薄以及给工作薄自动命令什么的
还有一些其他的
- Sheets(n)
Sheets(n)
是通过索引号(n)来引用工作簿中的工作表。这里的n
是工作表的索引号(从 1 开始计数)。例如,Sheets(1)
引用的是工作簿中的第一个工作表,Sheets(2)
引用的是第二个工作表,以此类推。
- Sheets(”工作表名称”)
- ActiveSheet
如果 Excel 文件中包含大量单元格,如何获取特定单元格的值?
这里假设我们获取 B23 单元格里面的值
这里的 [B23] 可以换成如下的
Range(”B23”)
Cells(23,2)
我们如何选择到底是使用 [B23],Range(”B23”),Cells(23,2) 呢?
从简写程度来说 [B23] 最方便,从后续的进行迭代来说 Cells 更方便,因为 Cells(i,j) 这里的 i,j 我们后续好控制,而 B23 ,B24,A1 可能就比较麻烦了
对于 Range(”B23”) 的好处在于,可以一次性的操作,例如如下的效果
Dim ws As Object
:声明ws
作为Object
类型变量,用于引用普通工作表。
Set ws = Sheets(3)
:使用Set
赋值给ws
变量,指定第三个工作表。
ws.Range("D3:D6").Value = 10
:对指定工作表的区域D3:D6
填充值为 10。
综合练习
将 Excel 表格中的 aaa 工作薄的名称命名为 A1 单元格的名称
3. 对象的方法
3.1 Excel 文件的方法
对象的方法就是对象可以执行的操作或动作。想象一下,如果对象是一个物品,那么方法就是这个物品能做什么。
举例子:
新建一个 Excel 文件
WorkBooks 表示当前打开工作簿的集合
打开 Excel 文件
比如打开 C:\Users\Administrator\Downloads\test2.xlsx 这个 Excel 文件
如果这里要使用相对路径,那么就需要这样
为什么 ThisWorkBook 不用 s,而WorkBooks 要加 s 呢?原因在于 ThisWorkBook 肯定是只有一个啊,当前的 Excel 文件,然后 WorkBooks 可以是多个,因为我们可以打开多个 Excel 文件
关闭文件
实际上我们可以建立这样的流程:
新建 Excel 文件 → 进行数据填充 → 保存 → 关闭
3.2 单元格的方法
如果执行复制值
清除 A1 单元格的值和样式
去掉值,但是保留样式
- 作者:我心永恒
- 链接:https://wxyhgk.com/article/vba-object
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。