当前位置: 首页 > news >正文

WPS JS宏编程教程(从基础到进阶)--第二部分:WPS对象模型与核心操作

第二部分:WPS对象模型与核心操作

  1. WPS对象的属性、方法、集合
    • 工作簿对象常用表达方式
    • 工作表对象常用表达方式
    • 单元格对象常用表达方式
  2. 单元格操作实战
    • 单元格复制与重定位
    • 单元格偏移与尺寸调整
  3. 颜色设置专题
    • 索引颜色与RGB颜色
    • 按条件动态设置单元格颜色

第二部分: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 单元格对象常用操作

关键代码示例
// 读取A1单元格的值  
let 姓名 = Range("A1").Value2;  
MsgBox("当前用户:" + 姓名);  

// 批量填充序号(A列1~100)  
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("汇总表");  

  // 复制A1:F1标题区域  
  订单表.Range("A1:F1").Copy();  

  // 粘贴到汇总表A1位置(保留格式)  
  汇总表.Range("A1").PasteSpecial();  

  // 清空剪贴板  
  Application.CutCopyMode = false;  
}  
重定位技巧
// 从当前单元格向下偏移2行,向右偏移1列  
Range("A1").Offset(2, 1).Value2 = "新数据";  

// 动态扩展区域(从A1扩展到B3)  
Range("A1").Resize(3, 2).Value2 = [  
  ["姓名", "年龄"],  
  ["张三", 28],  
  ["李四", 32]  
];  

2.2 单元格偏移与尺寸调整

场景:在数据末尾追加新行
function 添加新数据() {  
  let 最后一行 = Range("A" + Rows.Count).End(xlUp).Row;  
  let 新行 = 最后一行 + 1;  

  // 在A列最后一行下方写入新数据  
  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); // 黑色字体  
    }  
  }  
}  
进阶技巧:清除颜色
// 清除A列所有颜色  
Columns("A").Interior.ColorIndex = xlColorIndexNone;  

第二部分总结

  • 核心口诀
    • 工作簿是文件,工作表是页签,单元格是数据点。
    • 属性描述状态,方法执行动作,集合管理多个对象。
  • 实战建议
    • OffsetResize动态定位数据区域。
    • ColorIndex快速配色,用RGB()实现个性化需求。

课后练习

  1. 写一个宏,将当前工作表的A1单元格复制到所有工作表的A1位置。
  2. for...of循环遍历B列,将负数标为红色。

代码参考答案

// 练习1:跨表复制A1内容  
function 跨表复制() {  
  let 源内容 = Range("A1").Value2;  
  for (let sheet of Sheets) {  
    sheet.Range("A1").Value2 = 源内容;  
  }  
}  

// 练习2:标记负数  
function 标记负数() {  
  for (let cell of Range("B2:B100")) {  
    if (cell.Value2 < 0) {  
      cell.Font.ColorIndex = 3; // 红色字体  
    }  
  }  
}  

相关文章:

  • Tabby 一:如何在Mac配置保姆级教程(本地模型替换hugging face下载)
  • Linux: 文件系统
  • Python项目-基于Python的网络爬虫与数据可视化系统
  • 计算机 笔记
  • 蓝桥杯备考:动态规划之最长上升子序列打鼹鼠
  • 数据结构的基本概念
  • 网络运维学习笔记(DeepSeek优化版) 024 HCIP-Datacom OSPF域内路由计算
  • 响应式CMS架构优化SEO与用户体验
  • vue3 组件篇 WaterMark
  • 23种设计模式-策略(Strategy)设计模式
  • 基于SpringBoot的“健身房管理系统”的设计与实现(源码+数据库+文档+PPT)
  • react ant design树穿梭框实现搜索并展开到子节点、同级节点选择及同时选择数量限制功能
  • 蓝桥杯备考-----》前缀和+哈希表之连续自然数和
  • javafx项目结构+代码规范
  • 西域平台商品详情接口开发指南(含代码示例)
  • Css布局-常规流笔记
  • LeetCode02.07.链表相交
  • AVI格式:经典视频格式的坚守与挑战
  • 在word中使用zotero添加参考文献并附带超链接
  • SpringBoot整合高德地图完成天气预报功能
  • 石家庄有没有销售做被用的网站/简短的软文范例
  • 有一个做搞笑英语视频网站/天津seo排名
  • wordpress点击网页效果/排名优化软件点击
  • 武威建设局网站/被逆冬seo课程欺骗了
  • 购物网网站建设开题报告/互联网推广项目
  • 做购物网站收费标准/百度竞价被点击软件盯上