JSA宏教程WPS表格常用内置对象——单元格区域(Range)对象(二)
zhezhongyun 2025-05-28 21:40 39 浏览
本期继续上一期的内容进行。
名称 | 说明 |
ColumnWidth | 返回或设置指定区域中所有列的列宽。Variant 类型,可读写。 |
RowHeight | 以磅为单位返回或设置指定区域中所有行的行高。如果指定区域中的各行的行高不等,则返回 null。Variant 类型,可读写。 |
Left | 返回一个 Variant 值,它代表从列 A 的左边缘到区域的左边缘的距离(以磅为单位)。 |
Top | 返回或设置一个 Variant 值,它代表行 1 上边缘到区域上边缘的距离(以磅为单位)。 |
Width | 返回一个 Variant 值,它代表区域的宽度(以磅单位表示)。 |
Height | 返回或设置一个 Variant 值,该值代表区域的高度(以磅为单位)。 |
Hidden | 返回或设置一个 Variant 值,它指明是否隐藏行或列。 |
AddIndent | 返回或设置一个 Variant 值,它指明当单元格中文本的对齐方式为水平或垂直等距分布时,文本是否为自动缩进。 |
HorizontalAlignment | 返回或设置一个 Variant 值,它代表指定对象的水平对齐方式。 |
VerticalAlignment | 返回或设置一个 Variant 值,它代表指定对象的垂直对齐方式。 |
NumberFormat | 返回或设置一个 Variant 值,它代表对象的格式代码。 |
Font | 返回一个 Font 对象,它代表指定对象的字体。 |
Formula | 返回或设置一个 Variant 值,它代表 A1 样式表示法和宏语言中的对象的公式(不支持数组溢出的公式)。 |
Formula2 | 返回或设置一个 Variant 值,它代表 A1 样式表示法和宏语言中的对象的公式(支持数组溢出的公式)。 |
Text | 返回或设置指定对象中的文本。String 型,只读。 |
Value2 | 返回或设置单元格值。Variant 类型,可读写。 |
Name | 返回或设置一个 Variant 值,它代表对象的名称。 |
ID | 返回或设置一个 String 值,它代表将页面另存为网页时指定单元格的识别标志。 |
Row | 返回区域中第一个子区域的第一行的行号。Long 类型,只读。 |
Column | 返回指定区域中第一块中的第一列的列号。Long 类型,只读。 |
Count | 返回一个 Long 值,它代表集合中对象的数量。 |
MergeCells | 如果区域包含合并单元格,则为 True。Variant 型,可读写。 |
以上属性(均来自于WPS开放平台)就是我们本期需要练习属性。上的属性涉及三个方面:
1、单元格区域的外观;2、单元格区域的内容;3、单元区域的自身
WPS官方开发文档的不足
WPS官方的教程有点缺憾,就是上面的属性给的并不全面,有一些相对比较重要的属性没有给出来。通过查找OFFICE的内容。我觉得上面的属性还需要加一个Borders属性,即是单元格的边框属性。
Borders:四个 Border 对象的集合,这些对象表示 Range 对象或 Style 对象的四个边框。只能对 Range 和 Style 对象的各个边框分别设置边框属性。 其他带边框的对象(如误差线和序列线)具有被视为单个实体的边框,而不管它有多少边。 对于这些对象,在返回边框和设置边框属性时必须将其作为一个整体处理。
使用 Borders (索引) (其中 index 标识边框)返回单个 Border 对象。 Index 可以是以下 XlBordersIndex 常量之一: xlDiagonalDown、 xlDiagonalUp、 xlEdgeBottom、 xlEdgeLeft、 xlEdgeRight、 xlEdgeTop、 xlInsideHorizontal 或 xlInsideVertical。
而Borders集合也有它自己的属性,以下列示出Borders集合常用的属性:
Color:设置边框的颜色
ColorIndex:设置四条边的颜色,要求四条边的颜色都一样,如果不一样,这个属性将返回null.
Count:代表集合中对象的数量,即是Borders对象中的Border有多少个。
Item:返回一个 Border 对象,该对象代表单元格区域或样式的边框之一。可以取以下值:
LineStyle:指定边框的线条样式。它可以取以下值:
Weight:返回或设置一个 XlBorderWeight 值,该值代表边框的权重。它可以取以下值:
练习
练习1:熟悉单元格区域外观系列属性
做一个表格标题栏1行5列:第一列列宽3、第二列列宽12、第三列列宽4、第四列列宽5、第五列列宽6;行高25;各列都是水平居中、垂直居中。
- 通过ColumnWidth和RowHeight属性设置单元格区域的列宽和行高。
- 通过HorizontalAlignment和VerticalAlignment设置单元格中文本在水平和垂直方向的对齐方式,并通过AddIndent属性设置单元格中文本是否缩进。HorizontalAlignment和VerticalAlignment取值如下图
- 通过Borders属性来设置单元格区域的边框:外边框蓝色细实线、内边框红色虚线
const TABLEHEAD = "A1:E1";//定义好标题栏的地址
const TABLEBODY = "A2:E6";//定义好数据栏的地址
const DATATABLE = "A1:E6";//定义表格的地址。
//定义一个无前缀的“会计专用”数字格式。
const ACCOUNTANT_NUMBER_FORMAT_NONPREFIX = '_ * #,##0.00_ ;_ * -#,##0.00_ ;_ * "-"??_ ;_ @_ ';
function CreateTableHead()
{
let rngHead = Worksheets("Sheet2").Range(TABLEHEAD);
//行高
rngHead.RowHeight = 25;
//第一列列宽5、第二列列宽12、第三列列宽7、第四列列宽7、第五列列宽10
rngHead.Parent.Range("A:A").ColumnWidth = 5;
rngHead.Parent.Range("B:B").ColumnWidth = 12;
rngHead.Parent.Range("C:C").ColumnWidth = 7;
rngHead.Parent.Range("D:D").ColumnWidth = 7;
rngHead.Parent.Range("E:E").ColumnWidth = 10;
//各列都是水平居中、垂直居中
rngHead.HorizontalAlignment = xlHAlignCenter;
rngHead.VerticalAlignment = xlVAlignCenter;
//通过Borders属性来设置单元格区域的边框:外边框蓝色细实线、内边框红色虚线
// xlEdgeBottom、 xlEdgeLeft、 xlEdgeRight、 xlEdgeTop、 xlInsideHorizontal 或 xlInsideVertical。
rngHead.Borders(xlEdgeBottom).LineStyle = xlContinuous;
rngHead.Borders(xlEdgeLeft).LineStyle = xlContinuous;
rngHead.Borders(xlEdgeRight).LineStyle = xlContinuous;
rngHead.Borders(xlEdgeTop).LineStyle = xlContinuous;
//颜色RGB(red,green,blue)三个参数分别代表着0~255范围内的值。以下(0,0,255)表示是纯蓝色
rngHead.Borders(xlEdgeBottom).Color = RGB(0,0,255);
rngHead.Borders(xlEdgeLeft).Color = RGB(0,0,255);
rngHead.Borders(xlEdgeRight).Color = RGB(0,0,255);
rngHead.Borders(xlEdgeTop).Color = RGB(0,0,255);
rngHead.Borders(xlInsideHorizontal).LineStyle = xlDash;
rngHead.Borders(xlInsideVertical).LineStyle = xlDash;
//颜色RGB(red,green,blue)三个参数分别代表着0~255范围内的值。以下(0,0,255)表示是纯红色
rngHead.Borders(xlInsideHorizontal).Color = RGB(255,0,0);
rngHead.Borders(xlInsideVertical).Color = RGB(255,0,0);
}
练习2:在练习1的基础上再画出5行。
边框要求同练习1;第一列水平居中垂直居中;第二列垂直居中水平居左;第三到第五列数字格式设为“会计专用”第五列公式:第三列的值乘以第四列的值。将练习1中的标题栏从左至右设置单元格内容为:序号、名称、数量、单价、金额。
- 通过NumberFormat设置单元格数字显示格式;
- 通过Font属性设置表格文本字体、及字体样式;
- 通过Formula2属性设置单元格中的公式;
- 通过text和value2属性设置单元格的文本或数值。
function CreateTableBody(){
let rngBody = Worksheets("Sheet2").Range(TABLEBODY);
let rngTable = Worksheets("Sheet2").Range(DATATABLE);
let titleArray = ['序号','名称','数量','单价','金额'];
//边框要求同练习1,因此可以直接将练习1关于边框的都复制过来
// xlEdgeBottom、 xlEdgeLeft、 xlEdgeRight、 xlEdgeTop、 xlInsideHorizontal 或 xlInsideVertical。
rngBody.Borders(xlEdgeBottom).LineStyle = xlContinuous;
rngBody.Borders(xlEdgeLeft).LineStyle = xlContinuous;
rngBody.Borders(xlEdgeRight).LineStyle = xlContinuous;
rngBody.Borders(xlEdgeTop).LineStyle = xlContinuous;
rngBody.Borders(xlEdgeBottom).Color = RGB(0,0,255);
rngBody.Borders(xlEdgeLeft).Color = RGB(0,0,255);
rngBody.Borders(xlEdgeRight).Color = RGB(0,0,255);
rngBody.Borders(xlEdgeTop).Color = RGB(0,0,255);
rngBody.Borders(xlInsideHorizontal).LineStyle = xlDash;
rngBody.Borders(xlInsideVertical).LineStyle = xlDash;
rngBody.Borders(xlInsideHorizontal).Color = RGB(255,0,0);
rngBody.Borders(xlInsideVertical).Color = RGB(255,0,0);
//2、第一列水平居中垂直居中;第二列垂直居中水平居左;第三到第五列数字格式设为“会计专用”第五列公式:第三列的值乘以第四列的值。
for(col of rngBody.Columns)
{
//对列的序号进行switch判断分别
switch(col.Column){
case 1:
//第一列,水平居中
col.HorizontalAlignment = xlHAlignCenter;
break;
case 2:
//第二列,水平居左
col.HorizontalAlignment = xlHAlignLeft;
break;
case 3:
//第三列和第四列都要设置为会计专用的数字显示格式。
col.NumberFormat = ACCOUNTANT_NUMBER_FORMAT_NONPREFIX;
break;
case 4:
col.NumberFormat = ACCOUNTANT_NUMBER_FORMAT_NONPREFIX;
break;
case 5:
////第五列要设置为会计专用的数字显示格式;还要设置公式
col.NumberFormat = ACCOUNTANT_NUMBER_FORMAT_NONPREFIX;
col.Formula = "=C2*D2";//这样写也能实现自动向下填充
//col.Cells(1).Formula = "=C2*D2";//列中第一个单元格的公式
//col.FillDown();//向下填充
break;
}
col.VerticalAlignment = xlVAlignCenter//所有列都垂直居中
}
//3、将练习1中的标题栏从左至右设置单元格内容为:序号、名称、数量、单价、金额。
//取得数据表的第一行,也即是标题栏那一行,设置它每个单元格的值是上述所定义的数组。
rngTable.Rows(1).Value2 = titleArray;
//所有行高
rngTable.RowHeight = 25;//数据表格中的单元格行高25
//通过Font属性设置表格文本字体、及字体样式;
rngTable.Font.Name = '微软雅黑';
rngTable.Font.Size = 11
rngTable.Rows(1).Font.Bold = true;//标题栏粗体
}
以上就是本期关于Rang对象的属性的第二部分内容。
通过第二部分的内容,创建了一个简单的数据表格:设置了表格的字体、边框、公式;学会了如何将数组值赋值给单元格。
我们同样是可以通过微软的VBA对象模型用在WPS的JSA中。小编发现WPS官方的文档内容不足,有缺失。我们在实际工作中,完全是可以将VBA的对象模型作为我们的参考工具之一。
以上代码复制后即可运行。
小编的演示文档会保存起来,免费提供给大家学习,如有需要关注后私信说明要哪一章节的演示文档。
请注意:演示文档与小编的教程同步即是小编的教程到哪一步,演示文档就到哪一章节。
关注我,持续共同学习,一起踏上wps宏(JSA)的登山之路。
- 上一篇:PyQt5界面美化(一)
- 下一篇:WPF基础之UI布局
相关推荐
- perl基础——循环控制_principle循环
-
在编程中,我们往往需要进行不同情况的判断,选择,重复操作。这些时候我们需要对简单语句来添加循环控制变量或者命令。if/unless我们需要在满足特定条件下再执行的语句,可以通过if/unle...
- CHAPTER 2 The Antechamber of M de Treville 第二章 特雷维尔先生的前厅
-
CHAPTER1TheThreePresentsofD'ArtagnantheElderCHAPTER2TheAntechamber...
- CHAPTER 5 The King'S Musketeers and the Cardinal'S Guards 第五章 国王的火枪手和红衣主教的卫士
-
CHAPTER3TheAudienceCHAPTER5TheKing'SMusketeersandtheCardinal'SGuard...
- CHAPTER 3 The Audience 第三章 接见
-
CHAPTER3TheAudienceCHAPTER3TheAudience第三章接见M.DeTrévillewasatt...
- 别搞印象流!数据说明谁才是外线防守第一人!
-
来源:Reddit译者:@assholeeric编辑:伯伦WhoarethebestperimeterdefendersintheNBA?Here'sagraphofStea...
- V-Day commemorations prove anti-China claims hollow
-
People'sLiberationArmyhonorguardstakepartinthemilitaryparademarkingthe80thanniversary...
- EasyPoi使用_easypoi api
-
EasyPoi的主要特点:1.设计精巧,使用简单2.接口丰富,扩展简单3.默认值多,writelessdomore4.springmvc支持,web导出可以简单明了使用1.easypoi...
- 关于Oracle数据库12c 新特性总结_oracle数据库12514
-
概述今天主要简单介绍一下Oracle12c的一些新特性,仅供参考。参考:http://docs.oracle.com/database/121/NEWFT/chapter12102.htm#NEWFT...
- 【开发者成长】JAVA 线上故障排查完整套路!
-
线上故障主要会包括CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题...
- 使用 Python 向多个地址发送电子邮件
-
在本文中,我们将演示如何使用Python编程语言向使用不同电子邮件地址的不同收件人发送电子邮件。具体来说,我们将向许多不同的人发送电子邮件。使用Python向多个地址发送电子邮件Python...
- 提高工作效率的--Linux常用命令,能够决解95%以上的问题
-
点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...
- linux常用系统命令_linux操作系统常用命令
-
系统信息arch显示机器的处理器架构dmidecode-q显示硬件系统部件-(SMBIOS/DMI)hdparm-i/dev/hda罗列一个磁盘的架构特性hdparm-tT/dev/s...
- 小白入门必知必会-PostgreSQL-15.2源码编译安装
-
一PostgreSQL编译安装1.1下载源码包在PostgreSQL官方主页https://www.postgresql.org/ftp/source/下载区选择所需格式的源码包下载。cd/we...
- Linux操作系统之常用命令_linux系统常用命令详解
-
Linux操作系统一、常用命令1.系统(1)系统信息arch显示机器的处理器架构uname-m显示机器的处理器架构uname-r显示正在使用的内核版本dmidecode-q显示硬件系...
- linux网络命名空间简介_linux 网络相关命令
-
此篇会以例子的方式介绍下linux网络命名空间。此例中会创建两个networknamespace:nsa、nsb,一个网桥bridge0,nsa、nsb中添加网络设备veth,网络设备间...
- 一周热门
- 最近发表
-
- perl基础——循环控制_principle循环
- CHAPTER 2 The Antechamber of M de Treville 第二章 特雷维尔先生的前厅
- CHAPTER 5 The King'S Musketeers and the Cardinal'S Guards 第五章 国王的火枪手和红衣主教的卫士
- CHAPTER 3 The Audience 第三章 接见
- 别搞印象流!数据说明谁才是外线防守第一人!
- V-Day commemorations prove anti-China claims hollow
- EasyPoi使用_easypoi api
- 关于Oracle数据库12c 新特性总结_oracle数据库12514
- 【开发者成长】JAVA 线上故障排查完整套路!
- 使用 Python 向多个地址发送电子邮件
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- 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)
- opacity 属性 (32)
- transition 属性 (33)