JSA宏教程WPS表格常用内置对象——应用程序(Application)对象
zhezhongyun 2025-06-09 07:25 1 浏览
一、关于应用程序Application对象
Application对象就是一个运行着的WPS表格(即ET)应用程序,它是整个应用程序根对象,在它之上没有其他程序对象了。
ET在WPS的文件夹中的图标如下:
在WPS表格运行过程中,在任务管理器中的图标也是如上图所述。
注意:不要认为Application对象是WPS程序运行时产生的顶层对象,而是WPS表格程序的运行时的顶层对象。WPS程序在运行时,可以同时在WPS程序框架之下运行表格、PPT、文档等等。
二、常用属性
Application对象的常用属性(不常用的就不列出来了)列表如下(本表摘自WPS开放平台):
名称 | 说明 |
ActiveCell | 返回一个 Range 对象,该对象代表活动窗口(顶部窗口)或指定窗口中的活动单元格。如果窗口中没有显示工作表,此属性无效。只读。 |
Selection | 为 Application 对象返回在活动窗口中选定的对象。 |
Cells | 返回一个 Range 对象,该对象代表活动工作表中的所有单元格。如果活动文档不是工作表,则此属性无效。 |
Rows | 返回一个 Range 对象,它代表活动工作表中的所有行。如果活动文档不是工作表,则 Rows 属性失效。Range 对象,只读。 |
Columns | 返回一个 Range对象,它代表活动工作表中的所有列。如果活动文档不是工作表,则 Columns 属性无效。 |
ActiveSheet | 返回一个对象,它代表活动工作簿中或指定的窗口或工作簿中的活动工作表(最上面的工作表)。如果没有活动的工作表,则返回 null。 |
Worksheets | 对于 Application对象,返回一个 Sheets集合,它代表活动工作簿中的所有工作表。对于 Workbook对象,返回一个 Sheets集合,它代表指定工作簿中的所有工作表。Sheets对象,只读。 |
ActiveWorkbook | 返回一个 Workbook 对象,该对象代表活动窗口(顶部窗口)中的工作簿。只读。如果没有打开的窗口,或者“信息”窗口或“剪贴板”窗口为活动窗口,则返回 null。 |
Workbooks | 返回一个 Workbooks 集合,该集合表示所有打开的工作簿。只读。 |
Name | 返回一个代表对象名称的 String 值。 |
Names | 返回一个 Names 集合,该集合代表活动工作簿中的所有名称。只读 Names 对象。 |
Build | 返回 ET 内部版本号。Number 类型,只读。 |
Caption | 返回或设置一个 String 值,它代表出现在 ET 主窗口标题栏中显示的名称。 |
Path | 返回一个 String 值,它代表应用程序的完整路径,不包括末尾的分隔符和应用程序名称。 |
Version | 返回一个 String 值,它代表 ET 版本号。 |
小编这里将上表进行了划分。分别按照工作表、工作簿、对象本身属性这三个维度进行划分,方便大家容易记忆与理解。
三、常用方法
Application对象的常用方法(不常用的就不列出来了)列表如下(本表摘自WPS开放平台):
名称 | 说明 |
Evaluate | 将一个 ET 名称转换为一个对象或者一个值。 |
Goto | 选定任意工作簿中的任意区域,并且如果该工作簿未处于活动状态,就激活该工作簿。 |
InputBox | 显示一个接收用户输入的对话框。返回此对话框中输入的信息。 |
Quit | 退出ET |
Run | 运行一个宏或者调用一个函数。该方法可用于运行宏编辑器编写的宏,或者运行 DLL 或 XLL 中的函数。 |
四、练习
练习一、当某“启用了宏的工作簿文件”打开的时候对WPS的表格版本进行对比,如果版本低于12(WPS的版本号12也是当前最新版本号)或者内部版本号低于某个版本(这里假定是17133版本,实事上这个版本是最最新版本,但为了有演示效果,暂设置这个版),跳出提示:版本过低,本宏表格需要高级版本,先去升级程序版本。待用户点击确认后,退出WPS表格。
要解决这个练习,我们需要:
1、要用到Application对象的本身的两个属性:一个是Build属性,另一个是Version属性。
Build属性返回的是WPS表格的版本号,而非内部版本号;
Version属性返回的是内部版本号。
比如我的WPS表格的版本号是这样的:
2、Application对象的WorkbookOpen事件。事件如何来的呢?当我们每次对表格进行一次打开、关闭、点击等等这些行为都会引发对应对象的相应事件,比如打开事件、关闭事件、点击事件。
事件是我们进行JSA编程,智能化的一个大前提。
JSA里的任何对象都有事件,利用好事件,对于我们JSA宏来说,将是一大利器。
如何设置事件?
第一步,打开WPS宏编辑器
第二步,选择事件,我们这里需要选择WorkbookOpen事件
3、编写代码
function Application_WorkbookOpen(wk)
{
let app = Application.Application;//将Application对象赋值给一个变量,缩短文本量。
//将版本号和内部版本号赋值给变量。
let build = app.Build;
let version = app.Version;
let userChoice;//这个变量用来存储用户的选择。
//做出判断,如果版本号不高于12或者内部版本号不高于17133,则提示用户软件要升级
//在用户做出选择之后,退出WPS表格
if(build <= 12 || version <= 17133)
{
userChoice = MsgBox("抱歉,由于您的WPS版本过低,暂时无法使用本系统,请升级后再试!",0,"版本提示");
}
if(userChoice == 1)
{
app.Quit();//关闭WPS表格
}
}
4、先退出打开的WPS表格,再打开。效果如下
(PS:图小了,内容看得不太清楚,但是基本演示的效果还是可以看清楚的,我现在苦恼的是怎么把这个文件的代码改回来,好能回到正常演示的轨道上来。)
练习2:当表格打开时,1、获取当前打开的表格的文件名称,并在A8单元格中显示;其中拥有的工作表数量,并在A9单元格中显示;2、在第一个工作表的A10单元格中输入“Hello,WPS JS宏!”。
因为练习1的时候把演示文档搞的没办法进入到WPS宏编辑环境了,小编这里只能再重新开启一个新的工作表进行本题练习了。
与练习1一样,要实现这个功能,需要Application对象的以下属性。
- ActiveWorkbook:用来获取当前打开的工作簿对象。
- Worksheets:用来获取当前工作簿的所有工作表
事件:
- WorkbookOpen:工作簿打开事件,用来根据事件触发程序代码。
要在工作表的某个单元格中输入内容,则还需要工作表对象的Range属性。这个属性非常重要,在以后的工作中,几乎无处不用。虽然不是本期的内容,但本期会提前讲到。
- Range:用来在单元格中输入内容。
以及工作簿的属性:
- Name:用来获取打开的工作簿的属性。
- Count:用来获取工作簿中工作表的数量
同样,像练习1那样,将事件选择好,再来写代码。
准备就绪,只欠代码了,下面是小编写好的代码。
function Application_WorkbookOpen(wk)
{
//定义一个变量,用来存贮工作表数量
let sheetsCount = Application.ActiveWorkbook.Worksheets.Count;
//定义一个变量,用来存贮工作簿路径
let bookName = Application.ActiveWorkbook.Name;
//分别对A8、A9、A10三个单元格填充文本。
Application.ActiveWorkbook.Sheets(1).Range("A8").Value2 = "当前工作簿的名称是:" + bookName;
Application.ActiveWorkbook.Sheets(1).Range("A9").Value2 = "当前工作簿有" + sheetsCount + "个工作表.";
Application.ActiveWorkbook.Sheets(1).Range("A10").Value2 = "Hello,WPS JS宏!";
}
因为本代码是需要工作簿打开时才会起作用,因此需要先关闭,再打开才能看到效果。
可以看到,已经达到我们想要的效果了。
练习3:宏运行之后,弹出一个对话框,要用户输入点内容,再在C15单元格将用户输入的内容显示出来。
练习3因为不需要文件打开时运行,因此这里我们就不需要打开事件了。
要完成这个练习,我们需要用到Application对象的以下属性和方法:
属性:
- ActiveWorkbook:用来获取当前打开的工作簿对象。
方法:
- InputBox:弹出对话框,提示用户输入内容。
工作表对象的属性:
- Range:用来在单元格中输入内容。
工作簿对象的属性:
- ActiveSheet:用来获取当前活动工作表。
代码如下。
function InputSomeText()
{
let str;//变量,用来存贮用户输入的内容
str = Application.InputBox("请输入一句祝福话语,以此鼓励自己!","用户录入");
Application.ActiveWorkbook.ActiveSheet.Range("C15").Value2 = str;
}
运行效果:
上述动图操作运行宏之一的方法:“开发工具”——>“运行宏”——>选择要运行的宏,再点击运行。
从上述演示来看,在进行编写相关代码的时候,需要注意的地方
1、当第一个对象的层次较高,想要得到较低层次的对象,需要逐级向下取得对象。
2、对象是可以作为其另一个对象的属性的。
3、对象的属性、方法的获取、调用都是通过圆点(.)运算符进行的。
4、更多的属性和方法,需要我们自己去探索、去运用才能达到熟练。
关注我,持续共同学习,一起踏上wps宏(JSA)的登山之路。
相关推荐
- Renaming column names in Pandas
-
技术背景在数据处理过程中,经常需要对数据框(DataFrame)的列名进行重命名,以满足数据分析、可视化或其他处理的需求。Pandas是Python中用于数据处理和分析的强大库,提供了多种重命名...
- JSA宏教程WPS表格常用内置对象——应用程序(Application)对象
-
一、关于应用程序Application对象Application对象就是一个运行着的WPS表格(即ET)应用程序,它是整个应用程序根对象,在它之上没有其他程序对象了。ET在WPS的文件夹中的图标如下:...
- Pandas通过columns属性访问、修改和删除列
-
在pandas中,DataFrame的列可以使用columns属性进行访问、修改或删除。以下是使用columns属性访问DataFrame列的示例代码:importpandasa...
- excel的高级用法——宏,原来如此实用
-
使用excel时,直接手动计算或者输入公式,你会感到很苦恼或者操作很繁琐,如果使用vba直接输出结果,虽然效率很高,但是不够直观。excel宏最方便的用法是作为公式里的函数使用,打开宏编辑器,编写一个...
- CSS grid-template-columns属性探讨|给你代码
-
CSSgrid布局CSSgrid布局是一种很强大的布局,兼容性如上表所示,表现在控制台里,你可以清楚看到他的内部每一个块都由一个虚线方块组成。他的每行每列都会生产一个单元格,而划分他们之间的线称为网...
- 7K star!Text2SQL还不够?试试RAG2SQL的开源工具
-
查询数据库离不开SQL,那如何快速构建符合自己期望的SQL呢?AI发展带来了Text2SQL的能力,众多产品纷纷提供了很好的支持。今天我们分享一个开源项目,它在Text2SQL的基础上还要继续提高,通...
- 用Python把表格做成web可视化图表
-
Python中有一个streamlit库,Streamlit的美妙之处在于您可以直接在Python中创建Web应用程序,而无需了解HTML、CSS或JavaScrip,今天我们就用st...
- 鸿蒙开发:使用Circle绘制圆形(鸿蒙圆角)
-
前言本文基于Api13上篇文章,我们使用Rect组件实现了矩形效果,本篇文章,我们继续探究几何图形的中圆形,实现矩形有多种形式,同样,圆形,也是有多种形式,在上篇的文章中也简单的做了几个案例,比如,我...
- pandas读取Excel数据(.xlsx和.xls)
-
Python,速成心法敲代码,查资料,问Ai练习,探索,总结,优化★★★★★★★★★★Python教程:PyCharm安装过程中遇到的中英...
- WPF - 4.布局(wpf 表单布局)
-
摘要WPF布局原则一个窗口中只能包含一个元素屏幕适应程序,不要显示设置的元素(控件)的尺寸,可以设置最小或者最大尺寸不应使用坐标设置元素的位置可以嵌套布局容器正文Grid面板通过Grid.RowDef...
- 前端开发避坑指南:每天都能用的 CSS3/Less/Sass 实战技巧
-
在前端开发这条路上,CSS3、Less和Sass就像三个形影不离的好兄弟。它们既能帮你打造出惊艳的页面效果,也会偶尔给你“挖坑”。今天就分享几个我在项目里摸爬滚打总结出的实战技巧,全是干货,拿...
- WPF 实现描点导航(wps描点作图)
-
WPF实现描点导航控件名:NavScrollPanel作者:WPFDevelopersOrg-驚鏵原文链接[1]:https://github.com/WPFDevelopersOrg/WPF...
- WPS表格自动绘制像素风格营销宣传海报文档
-
先看效果原图WPS表格(类Excel)效果,这不是贴图哦操作流程分解图片为BGR数值的二维数组化的CSV将二维数组的CSV导入数据,数据-导入-选择数据源-分隔符号-逗号-完成插入脚本,开发工具-WP...
- Python读写docx文件(python读文档)
-
Python读写docx文件Python读写word文档有现成的库可以处理pipinstallpython-docx安装一下。https://python-docx.readthedocs.io/...
- UWP开发入门(十七)--判断设备类型及响应VirtualKey
-
蜀黍我做的工作跟IM软件有关,UWP同时会跑在电脑和手机上。电脑和手机的使用习惯不尽一致,通常我倾向于根据窗口尺寸来进行布局的变化,但是特定的操作习惯是依赖于设备类型,而不是屏幕尺寸的,比如聊天窗口的...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML常用标签 (29)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)
- HTML button formtarget 属性 (30)
- CSS 水平对齐 (Horizontal Align) (30)