首页 » 脚本文章 » JSA宏教程WPS表格常用内置对象——工作表(Worksheet)对象(工作对象位置单元格属性)

JSA宏教程WPS表格常用内置对象——工作表(Worksheet)对象(工作对象位置单元格属性)

南宫静远 2024-07-23 22:39:31 脚本文章 0

扫一扫用手机浏览

文章目录 [+]

工作簿中的所有Worksheet(工作表)就组成了Worksheets集合。

在Worksheets集合中:

1、可以通过for ... of循环语句遍历集合中的每一个工作表;

JSA宏教程WPS表格常用内置对象——工作表(Worksheet)对象(工作对象位置单元格属性) JSA宏教程WPS表格常用内置对象——工作表(Worksheet)对象(工作对象位置单元格属性) 脚本文章
(图片来自网络侵删)

2、也可以通过Worksheets(序号)或者Worksheets("表名")来获取某个工作表;

3、还可以通过ActiveSheet属性获取处于正在被人工操作的工作表。

JSA宏教程WPS表格常用内置对象——工作表(Worksheet)对象(工作对象位置单元格属性) JSA宏教程WPS表格常用内置对象——工作表(Worksheet)对象(工作对象位置单元格属性) 脚本文章
(图片来自网络侵删)

在获取了Worksheet(工作表)对象后,就可以对工作表做出相应的操作。

这里要注意:一个Worksheet的序号指的是它在工作簿的标签栏上的位置,所以改变某个Worksheet在标签栏上的位置,就改变了它的序号。
拖动、插入、删除、新增等行为都可能改变Worksheet的位置的。

二、属性和方法

以下属性和方法,均来自WPS官方开发文档。

属性

名称

说明

Application

如果不使用对象识别符,则该属性返回一个 Application对象,该对象表示 ET 应用程序。
如果使用对象识别符,则该属性返回一个表示指定对象(可对一个 OLE 自动操作对象使用本属性来返回该对象的应用程序)创建者的 Application 对象。
只读。

Next

返回代表下一个工作表的 Worksheet对象。

Previous

返回代表下一个工作表的 Worksheet对象。

Index

返回 Long 值,它代表对象在其同类对象所组成的集合内的索引号。

Name

返回或设置一个 String 值,它代表对象的名称。

Names

返回一个 Names集合,它代表所有特定于工作表的名称(使用“WorksheetName!”前缀定义的名称)。
Names 对象,只读。

Visible

返回或设置一个 XlSheetVisibility值,它确定对象是否可见。

Type

返回一个代表工作表类型的 XlSheetType值。

Protection

返回一个 Protection 对象,该对象表示工作表的保护选项。

Cells

返回一个 Range对象,它代表工作表中的所有单元格(不仅仅是当前使用的单元格)。

Columns

返回一个 Range对象,它代表活动工作表中的所有列。
如果活动文档不是工作表,则 Columns 属性失效。

UsedRange

返回一个 Range对象,该对象表示指定工作表上所使用的区域。
只读。

Rows

返回一个 Range对象,它代表指定工作表中的所有行。
Range 对象,只读。

Shapes

返回一个 Shapes集合,它代表工作表上的所有形状。
只读。

以上表格各属性由不同色彩进地区分,区分依据:顶层对象、工作表对象、工作表整体属性、单元格及单元格区域、工作表中插入的对象。

方法

名称

说明

Copy

将工作表复制到工作簿的另一位置。

Delete

删除对象。

Move

将工作表移到工作簿中的其他位置。

Protect

保护工作表使其不能被修改。

Range

返回一个 Range对象,它代表一个单元格或单元格区域。

Select

选择对象。

Unprotect

取消工作表或工作簿的保护。
如果工作表或工作簿不是受保护的,则此方法不起作用。

三、练习

练习1:在工作簿中新至4个工作表,工作表的名称采用默认的名称,编写一个宏,实现如下功能:

将工作表的位置关系设置顺序为sheet1、sheet3、sheet2、sheet4;将工作表3复制一份到sheet4之后,使得工作表位置关系排序变成:sheet1、sheet3、sheet2、sheet4、sheet3(2)给工作表sheet1设置密码保护。

分析:要完成练习1,先看第一个功能,其实就只需要把工作表2由原来的位置移动到工作表3和工作表4之间就可以实现了;第二个功能,就是使用Copy方法复制工作表3,然后将这个复制的新表移动到最后位置;第三个功能,利用Protect方法,设置工作表的密码保护。

分析完毕,代码如下:

/练习1:在工作簿中新至4个工作表,工作表的名称采用默认的名称,编写一个宏,实现如下功能:● 将工作表的位置关系设置顺序为sheet1、sheet3、sheet2、sheet4;● 将工作表3复制一份到sheet4之后,使得工作表位置关系排序变成:sheet1、sheet3、sheet2、sheet4、sheet3(2)● 给工作表sheet1设置密码保护。
/function Worksheet对象练习1(){ //将工作表的位置关系设置顺序为sheet1、sheet3、sheet2、sheet4;ActiveWorkbook.Worksheets.Item("Sheet2").Move(null,ActiveWorkbook.Worksheets.Item("Sheet3"));//将工作表3复制一份到sheet4之后,使得工作表位置关系排序变成:sheet1、sheet3、sheet2、sheet4、sheet3(2) ActiveWorkbook.Worksheets.Item("Sheet3").Copy(null,ActiveWorkbook.Worksheets.Item("Sheet4")); //给工作表sheet1设置密码保护。
ActiveWorkbook.Worksheets.Item("Sheet1").Protect("1234");}

运行效果:

练习1

Move方法:语法是“工作表对象.Move(目标位置后表,目标位置前表)”

这里要注意:“工作表对象”、“目标位置后表”、“目标位置前表” 这三个均是同一工作簿中的工作表对象。

1、工作表对象:即是想要移动的工作表

2、目标位置后表:意思是要把“工作表对象”放置在该表的前面,即“目标位置后表”在将“工作表对象”移动之后,它在“工作表对象”的后一个位置。
它与“目标位置前表”只能二选一。

3、目标位置前表:意思是要把“工作表对象”放置在该表的后面,即“目标位置前表”在将“工作表对象”移动之后,它在“工作表对象”的前一个位置。
它与“目标位置后表”只能二选一。

Copy方法:语法是“工作表对象.Copy(目标位置后表,目标位置前表)”

Copy方法中的各个对象与Move方法的一致。

以上两个方法中:“目标位置后表”和“目标位置前表”如果都不指定,那么将新建一个工作簿,其中包含要被操作(复制或移动)的工作表。

Protect方法:语法是“工作表对象.Protect(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)”。

该方法的所有参数都是可先参数。

由于Protect方法的参数比较多,但是这些参数具体是保护的什么内容,大家可以参与下面的图

大家一定发现了:图中有两个属性参数表中没有,而参数表中有三个图中没有,详情如下:

EnableSelection = xlUnlockedCells:只选未锁定单元格

EnableSelection = xlNoSelection: 只选锁定单元格

Contents:保护锁定的单元格和整个图表。

Scenarios:保护电子表格中的场景。

UserInterfaceOnly:仅保护用户界面,不保护宏。
意思是锁定用户操作界面,但是宏是可以修改表中的数据的。

练习2:编写几个宏,分别实现如下功能(目的是熟悉相关属性)

隐藏和显示指定工作表(Visible属性):

//设置Sheet3隐藏function SetSheetUnisible(){ActiveWorkbook.Worksheets.Item("Sheet3").Visible = false;}//设置Sheet3显现function SetSheetVisible(){ActiveWorkbook.Worksheets.Item("Sheet3").Visible = true;}

按指定要求修改工作表名称(Name属性):

//按指定要求修改工作表名称(Name属性)://修改Sheet3 (2)表的名称为"Sheet3 副本"function SetSheetName(){ActiveWorkbook.Worksheets.Item("Sheet3 (2)").Name = 'Sheet3 副本';}

获取工作表的类型(Type属性):

//获取工作表1的类型(Type属性):/xlChart:-4109图表xlDialogSheet:-4116对话框工作表xlExcel4IntlMacroSheet:4ET 版本 4 国际宏工作表xlExcel4MacroSheet:3ET 版本 4 宏工作表xlWorksheet:-4167工作表/function GetSheetType(){alert(ActiveWorkbook.Worksheets.Item("Sheet1").Type);}

证实拖动工作簿标签栏上工作表的位置,也会改变引用的序号即Index属性。

//证实拖动工作簿标签栏上工作表的位置,也会改变引用的序号即Index属性。
function GetSheetIndex(){alert(ActiveWorkbook.Worksheets.Item("Sheet1").Index);}

深入理解UsedRange对象:是否空单元格都是UsedRange?什么样情况的单元格会被认为是UsedRange?

//深入理解UsedRange对象:是否空单元格都是UsedRange?什么样情况的单元格会被认为是UsedRange?function GetUsedRange(){Application.ActiveSheet.UsedRange.Select()}

由上面的演示可知usedrange属性,它选取范围是由4个值决定的,在这4个值的范围之内,无论单元格是否被使用过,都将被认为是UsedRange。
这4个值是:最左边的单元格的列、最顶部的单元格行、最右单元格的列、最下单元格的行。
如果最左边的单元格是A11,最顶部单元格是F2,最右单元格是G1,最下单元格是E13,那么这个UsedRang的单元格区域就是A2:G13这个范围。

当这个范围的最值被清空后,又会以上述规则再来计算一个区域作为UsedRange区域。

以上代码复制后即可运行。

请注意:演示文档与小编的教程同步即是小编的教程到哪一步,演示文档就到哪一章节。

关注我,持续共同学习,一起踏上wps宏(JSA)的登山之路。

#头条创作挑战赛#

标签:

相关文章