第二部分: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; } }
}