发布于: 2025-1-10最后更新: 2025-1-9字数 1726阅读时长 5 分钟

type
status
date
slug
summary
tags
category
icon
password
Property
Jan 9, 2025 04:55 PM
URL

1. 什么是对象?

对于一个 Excel 文件,常用的三个就是
notion image
  • Excel 文件本身
  • Excel 工作薄 Sheet
  • Excel 中的单元格
 
这三个也被称之为 对象(object),如何理解对象呢?简单来说就是组成 Excel 的要素,还有一些常见的对象
  • Chart 
    • code
      使用代码创建的 Excel 图表
      notion image
  • OLE 对象 我们可以使用 chemdraw 绘制分子然后嵌入到 Excel 中,这个就是 OLE 对象
notion image
 
对于更多详细的Excel对象模型信息,可以参考微软官方文档:
还有其他的各种对象
notion image
 
Excel 中有几百个对象,我们目前可以先掌握上面的三个,后续有需要可以查官方文档。
 
Excel 文件对象:WorkBooks
Excel 工作薄:Sheets
单元格:Range/Cells
 
现在让我们思考以下问题:
  1. 如何获取当前 Excel 文件的路径呢?
  1. 不打开 Excel 文件的情况下,如何知道文件中有多少个工作表以及它们的名称?
  1. 如果 Excel 文件中包含大量单元格,如何获取特定单元格(比如 A10000)的值?
要解决这些问题,我们需要了解对象的属性

2. 对象的属性

在了解对象的属性之前,我们需要知道如何运行 Excel VBA,打开 Excel ,然后
alt + F11 就能打开 VBA 编辑器了,然后点击插入模块就行了
notion image
 
如何获取当前 Excel 文件的路径呢?
notion image
 
上面代码中 ActiveWorkbook 代表的是当前正在操作的的 Excel 文件,而 Path 就是 ActiveWorkbook 的属性。,也就是 ActiveWorkbook 的路径
 
 
不打开 Excel 文件的情况下,如何知道某个 Excel 文件中有多少个工作表以及它们的名称?
这个问题实现起来可能比较困难,我们或许可以搞点简单的,获取倒数第1个工作薄的名字
让我为您提供一个获取最后一个工作表名称的代码示例:
notion image
这个逻辑是首先用 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)
notion image
我们如何选择到底是使用 [B23],Range(”B23”),Cells(23,2) 呢?
从简写程度来说 [B23] 最方便,从后续的进行迭代来说 Cells 更方便,因为 Cells(i,j) 这里的 i,j 我们后续好控制,而 B23 ,B24,A1 可能就比较麻烦了
对于 Range(”B23”) 的好处在于,可以一次性的操作,例如如下的效果
notion image
 
notion image
  • Dim ws As Object :声明 ws 作为 Object 类型变量,用于引用普通工作表。
  • Set ws = Sheets(3):使用 Set 赋值给 ws 变量,指定第三个工作表。
  • ws.Range("D3:D6").Value = 10:对指定工作表的区域 D3:D6 填充值为 10。
 
 
 
综合练习
将 Excel 表格中的 aaa 工作薄的名称命名为 A1 单元格的名称
notion image

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 单元格的值和样式
 
去掉值,但是保留样式
 

Loading...
从混沌到有序:用 Notion 管理计算化学数据的新思路

从混沌到有序:用 Notion 管理计算化学数据的新思路


window 系统可以用 Python,不能用 pip

window 系统可以用 Python,不能用 pip


公告
公告
博客重大更新,更换为matery主题,阅读体验更加好了。
和博主联系
notion image