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