第二部分:WPS对象模型与核心操作
- WPS对象的属性、方法、集合
- 工作簿对象常用表达方式
- 工作表对象常用表达方式
- 单元格对象常用表达方式
- 单元格操作实战
- 颜色设置专题
第二部分:WPS对象模型与核心操作
1. WPS对象的属性、方法、集合
核心概念
WPS对象就像“俄罗斯套娃”:
- 工作簿(Workbook) → 工作表(Worksheet) → 单元格(Range)
- 每个对象都有属性(描述特征)、方法(可执行的动作)、集合(多个同类对象的组合)。
1.1 工作簿对象常用操作
关键代码示例
let 当前路径 = ThisWorkbook.Path;
MsgBox("当前文件保存在:" + 当前路径);
function 新建工作簿() {
let 新工作簿 = Workbooks.Add();
新工作簿.SaveAs(当前路径 + "\\2024年数据.xlsx");
新工作簿.Close();
}
for (let wb of Workbooks) {
Console.log("已打开的工作簿:" + wb.Name);
}
常用属性
属性 |
作用 |
示例 |
.Name |
获取工作簿名称 |
ThisWorkbook.Name |
.FullName |
获取完整路径 |
Workbooks("工资表.xlsx").FullName |
.Sheets |
获取所有工作表的集合 |
ThisWorkbook.Sheets.Count (统计工作表数量) |
1.2 工作表对象常用操作
关键代码示例
ActiveSheet.Name = "2024年数据";
Sheets("备份数据").Visible = false;
function 删除空白表() {
for (let sheet of Sheets) {
if (sheet.UsedRange.Count == 1) {
sheet.Delete();
}
}
}
常用方法
方法 |
作用 |
示例 |
.Copy() |
复制工作表 |
Sheets("模板").Copy() |
.Move() |
移动工作表 |
Sheets("数据").Move(Sheets(1)) (移动到最前) |
.Protect() |
保护工作表 |
ActiveSheet.Protect("123") |
1.3 单元格对象常用操作
关键代码示例
let 姓名 = Range("A1").Value2;
MsgBox("当前用户:" + 姓名);
Range("A1:A100").Value2 = [...Array(100).keys()].map(i => i + 1);
let 最后一行 = Cells(Rows.Count, 1).End(xlUp).Row;
Console.log("最后一行是:" + 最后一行);
常用属性
属性 |
作用 |
示例 |
.Row |
获取行号 |
Range("C5").Row → 5 |
.Column |
获取列号 |
Range("C5").Column → 3 |
.Formula |
设置公式 |
Range("D2").Formula = "=SUM(B2:C2)" |
2. 单元格操作实战
2.1 单元格复制与重定位
场景:将“订单表”的标题行复制到“汇总表”
function 复制标题() {
let 订单表 = Sheets("订单表");
let 汇总表 = Sheets("汇总表");
订单表.Range("A1:F1").Copy();
汇总表.Range("A1").PasteSpecial();
Application.CutCopyMode = false;
}
重定位技巧
Range("A1").Offset(2, 1).Value2 = "新数据";
Range("A1").Resize(3, 2).Value2 = [
["姓名", "年龄"],
["张三", 28],
["李四", 32]
];
2.2 单元格偏移与尺寸调整
场景:在数据末尾追加新行
function 添加新数据() {
let 最后一行 = Range("A" + Rows.Count).End(xlUp).Row;
let 新行 = 最后一行 + 1;
Cells(新行, 1).Value2 = "王五";
Cells(新行, 2).Value2 = 25;
Columns("A:B").AutoFit();
}
3. 颜色设置专题
3.1 索引颜色 vs RGB颜色
类型 |
特点 |
示例 |
索引颜色 |
预定义56种颜色,速度快 |
Range("A1").Interior.ColorIndex = 3 (红色) |
RGB颜色 |
自定义1600万种颜色,更灵活 |
Range("A1").Interior.Color = RGB(255, 200, 0) (橙色) |
颜色代码对照表

3.2 按条件动态设置颜色
场景:将成绩大于90的单元格标为绿色
function 标记高分() {
let 数据范围 = Range("B2:B100");
for (let cell of 数据范围) {
if (cell.Value2 > 90) {
cell.Interior.ColorIndex = 4;
cell.Font.Color = RGB(0, 0, 0);
}
}
}
进阶技巧:清除颜色
Columns("A").Interior.ColorIndex = xlColorIndexNone;
第二部分总结
- 核心口诀:
- 工作簿是文件,工作表是页签,单元格是数据点。
- 属性描述状态,方法执行动作,集合管理多个对象。
- 实战建议:
- 用
Offset
和Resize
动态定位数据区域。
- 用
ColorIndex
快速配色,用RGB()
实现个性化需求。
课后练习:
- 写一个宏,将当前工作表的A1单元格复制到所有工作表的A1位置。
- 用
for...of
循环遍历B列,将负数标为红色。
代码参考答案
function 跨表复制() {
let 源内容 = Range("A1").Value2;
for (let sheet of Sheets) {
sheet.Range("A1").Value2 = 源内容;
}
}
function 标记负数() {
for (let cell of Range("B2:B100")) {
if (cell.Value2 < 0) {
cell.Font.ColorIndex = 3;
}
}
}