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; // 红色字体  }  }  
}  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/42436.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【NLP 48、大语言模型的神秘力量 —— ICL:in context learning】

目录 一、ICL的优势 1.传统做法 2.ICL做法 二、ICL的发展 三、ICL成因的两种看法 1.meta learning 2.Bayesian Inference 四、ICL要点 ① 语言模型的规模 ② 提示词prompt中提供的examples数量和顺序 ③ 提示词prompt的形式&#xff08;format&#xff09; 五、fine-tune VS I…

基于Spring AI开发本地Jenkins MCP Server服务

前言 首先介绍下MCP是什么&#xff1f; MCP是由开发了 Claude 模型的 Anthropic 公司2024年12月提出并开源的一项开放标准&#xff0c;全称&#xff1a;Model Context Protocol&#xff0c;它是一个开放协议&#xff0c;它使 LLM 应用与外部数据源和工具之间的无缝集成成为可能…

94二叉树中序遍历解题记录

怎么说呢&#xff0c;以为这道题不用记录了&#xff0c;菜得吓到了自己。起因是这个遍历的递归一般是写两个函数完成&#xff0c;如下&#xff1a; func inorder(root *TreeNode, res *[]int) {if root nil {return}inorder(root.Left, res)*res append(*res, root.Val) // …

重磅推出稳联技术Profinet转CANopen网关智能工厂解决方案!

重磅推出稳联技术Profinet转CANopen网关智能工厂解决方案&#xff01; 稳联技术Profinet转CANopen网关应运而生——它如同一座智能桥梁☺&#xff0c;打通两大主流工业协议&#xff0c;让异构网络无缝互联&#xff0c;助您释放设备潜力&#xff0c;实现真正的“万物互联”&…

Python正则表达式(一)

目录 一、正则表达式的基本概念 1、基本概念 2、正则表达式的特殊字符 二、范围符号和量词 1、范围符号 2、匹配汉字 3、量词 三、正则表达式函数 1、使用正则表达式&#xff1a; 2、re.match()函数 3、re.search()函数 4、findall()函数 5、re.finditer()函数 6…

ArayTS:一个功能强大的 TypeScript 工具库

目录 ArayTS&#xff1a;一个功能强大的 TypeScript 工具库&#x1f680; 主要特性1. 数据结构与算法2. 实用工具函数3. 类型工具4. 数据验证5. 字符串处理6. 数组处理7. 对象处理8. 样式处理9. 随机数生成10. 文件处理 &#x1f4a1;&#x1f4a1;&#x1f4a1;除此之外&#…

【质量管理】防错(POKA-YOKE)的概念、特点和作用解析

什么是防错法&#xff1f; 防错法&#xff08;日语发音为PO-ka yo-KAY&#xff09;是指运用某种机制或设备&#xff0c;帮助设备操作员&#xff08;或任何人&#xff09;避免犯错。在日语中&#xff0c;“poka-yoke” 意为 “防错” 或 “预防疏忽性错误”&#xff0c;最初被称…

【Sql Server】在SQL Server中生成雪花ID(Snowflake ID)

大家好&#xff0c;我是全栈小5&#xff0c;欢迎来到《小5讲堂》。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言认识雪花ID…

HarmonyOS NEXT——【鸿蒙原生应用加载Web页面】

鸿蒙客户端加载Web页面&#xff1a; 在鸿蒙原生应用中&#xff0c;我们需要使用前端页面做混合开发&#xff0c;方法之一是使用Web组件直接加载前端页面&#xff0c;其中WebView提供了一系列相关的方法适配鸿蒙原生与web之间的使用。 效果 web页面展示&#xff1a; Column()…

Spring Data审计利器:@LastModifiedDate详解!!!

&#x1f552; Spring Data审计利器&#xff1a;LastModifiedDate详解&#x1f525; &#x1f31f; 简介 在数据驱动的应用中&#xff0c;记录数据的最后修改时间是常见需求。Spring Data的LastModifiedDate注解让这一过程自动化成为可能&#xff01;本篇带你掌握它的核心用法…

循环神经网络(RNN)

循环神经网络&#xff08;RNN&#xff09; 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;简称 RNN&#xff09;是一类用于处理序列数据的神经网络模型。与传统的前馈神经网络&#xff08;如多层感知机&#xff09;不同&#xff0c;RNN 具有反馈结构&#xff…

iOS rootless无根越狱检测方案

不同于安卓的开源生态&#xff0c;iOS一直秉承着安全性更高的闭源生态&#xff0c;系统中的硬件、软件和服务会经过严格审核和测试&#xff0c;来保障安全性与稳定性。 据FairGurd观察&#xff0c;虽然iOS系统具备一定的安全性&#xff0c;但并非没有漏洞&#xff0c;如市面上…

【React】基于 React+Tailwind 的 EmojiPicker 选择器组件

1.背景 React 写一个 EmojiPicker 组件&#xff0c;基于 emoji-mart 组件二次封装。支持添加自定义背景 、Emoji 图标选择&#xff01;并在页面上展示&#xff01; 2.技术栈 emoji-mart/data 、emoji-mart : emoji 图标库、元数据 tailwindcss: 原子化 CSS 样式库 antd : 组…

skynet.socket.limit 使用详解

目录 核心作用方法定义使用场景场景 1&#xff1a;限制接收缓冲区&#xff08;防御大包攻击&#xff09;场景 2&#xff1a;动态调整限制&#xff08;应对不同负载&#xff09; 底层机制注意事项完整示例&#xff1a;带流量控制的 Echo 服务总结 在 Skynet 框架中&#xff0c;s…

electron打包vue2项目流程

1&#xff0c;安装一个node vue2 的项目 2&#xff0c;安装electron&#xff1a; npm install electron -g//如果安装还是 特比慢 或 不想安装cnpn 淘宝镜像查看是否安装成功&#xff1a;electron -v 3&#xff0c;进入到项目目录&#xff1a;cd electron-demo 进入项目目录…

【面试八股】:常见的锁策略

常见的锁策略 synchronized &#xff08;标准库的锁不够你用了&#xff09;锁策略和 Java 不强相关&#xff0c;其他语言涉及到锁&#xff0c;也有这样的锁策略。 1. 悲观锁&#xff0c;乐观锁&#xff08;描述的加锁时遇到的场景&#xff09; 悲观锁&#xff1a;预测接下来…

【数据分享】基于联合国城市化程度框架的全球城市边界数据集(免费获取/Shp格式)

在全球城市化进程不断加快的今天&#xff0c;如何精准定义和测量“城市”成为关键问题。不同国家和机构采用不同的标准&#xff0c;导致全球城市化水平的统计结果存在较大差异。同时&#xff0c;由于数据来源分散、标准不统一&#xff0c;获取一套完整、可比的全球城市边界数据…

acwing 每日一题4888. 领导者

目录 题目简述&#xff1a; 思路梳理&#xff1a; 总代码&#xff1a; https://www.acwing.com/problem/content/description/4891/ 题目简述&#xff1a; 有两个品种的奶牛&#xff0c;分别为G和H&#xff0c;我们要在每个品种中各找一头牛当领导者&#xff0c;最后输出全…

在Windows下VSCodeSSH远程登录到Ubuntu

Window用VSCode通过SSH远程登录Ubuntu SSH 服务开启Windows远程登录 SSH 服务开启 首先要确保 Ubuntu 的 SSH 服务开启了&#xff0c;开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu 开启 SSH sudo apt-get install openssh-serverWindows远…

软件性能测试中的“假阳性”陷阱

软件性能测试中的“假阳性”陷阱主要表现为错误警报频繁、资源浪费严重、测试可信度降低。其中&#xff0c;错误警报频繁是最常见且最严重的问题之一&#xff0c;“假阳性”现象会导致开发团队在解决不存在的问题上花费大量时间。据行业调查显示&#xff0c;超过30%的性能优化成…