JSA宏教程WPS表格常用内置对象——单元格区域(Range)对象(四)

本节主要讲几个WPS开发文档中未列出的又常用的方法。

这些方法包括:过滤、填充、查找和替换这几个方面,共计11个方法。

过滤类方法:AutoFilter、AdvancedFilter

填充类方法:AutoFill、FillDown、FillUp、FillRight、FillLeft

查找替换类方法:Find、FindNext、FindPrevious、Replace

以下方法内容均来自于微软VBA Excel模型对象文档,小编仅做整理。

名称

功能

AutoFilter

通过 AutoFilter 筛选列表。

AdvancedFilter

基于条件区域从列表中筛选或复制数据。 如果初始选定区域为单个单元格,则使用单元格的当前区域。

AutoFill

对指定区域中的单元格执行自动填充。

FillDown

从指定区域的顶部单元格开始向下填充,直至该区域的底部。 区域中首行单元格的内容和格式将复制到区域中其他行内。

FillUp

从指定区域的底部单元格开始向上填充,直至该区域的顶部。 区域中尾行单元格的内容和格式将复制到区域中其他行内。

FillRight

从指定区域的最左边单元格开始向右填充。 区域中最左列单元格的内容和格式将复制到区域中其他列内。

FillLeft

从指定区域的最右边单元格开始向左填充。 区域中最右列单元格的内容和格式将复制到区域中其他列内。

Find

在区域中查找特定信息。如果未发现匹配项,此方法返回 NothingFind 方法不会影响所选内容或活动单元格。

FindNext

继续使用 Find 方法开始的搜索。 查找匹配相同条件的下一个单元格,并返回表示该单元格的 Range 对象。 该操作不影响选定内容和活动单元格。

FindPrevious

继续使用 Find 方法开始的搜索。 查找匹配相同条件的上一个单元格,并返回代表该单元格的 Range 对象。 不会影响所选内容或活动单元格。

Replace

返回 Boolean,它表示指定区域内单元格中的字符。 使用此方法不会更改选中范围或活动单元格。

练习

本期练习以数据为例:

班级

姓名

期中

期末

平均成绩

三(1)

李浩然

250

262

247.83

三(1)

张浩

270

273

270.5

三(1)

周浩成

240

250

240

三(2)

刘成承

253

246

243.5

三(2)

钟成功

241

250

238.33

三(2)

关辛雨

280

295

291.67

三(2)

吕子成

279

292

282.33

三(2)

钟函

220

230

215.83

三(3)

李莞尔

180

159

169.33

三(3)

谢雨涵

285

290

281.17

三(3)

文成望

240

250

239.5

三(3)

罗宇浩

275

279

270.83

三(4)

陈然尔

230

245

230.67

三(4)

郑陈功

265

280

267.83

三(4)

董浩然

290

295

284.67

练习1:熟悉筛选类方法。

  • AutoFilter方法:AutoFilter (Field, Criteria1, Operator, Criteria2, VisibleDropDown)

名称

选项

数据类型

说明

Field

可选

Variant

相对于作为筛选基准字段(从列表左侧开始,最左侧的字段为第一个字段)的字段的整型偏移量。

Criteria1

可选

Variant

条件(字符串;例如,“101”)。 使用 "=" 查找空白字段,使用 "<>" 查找非空白字段,使用 "><" 选择数据类型中的(否数据)字段。
如果此参数被省略,条件为“全部”。 如果
OperatorxlTop10Items,则 Criteria1 指定项数(例如“10”)。

Operator

可选

XlAutoFilterOperator

一个指定筛选器类型的 XlAutoFilterOperator 常量。

Criteria2

可选

Variant

第二个条件(字符串)。 与 Criteria1Operator 一起组合成复合筛选条件。 也用作日期字段的单一条件(按日、月或年筛选)。 后跟一个数组,该数组用于详述和筛选 Array(Level, Date)。 其中,Level 为 0-2(年、月、日),Date 为筛选期内的一个有效日期。

VisibleDropDown

可选

Variant

如果为 True,则显示已筛选字段的 AutoFilter 下拉箭头。 如果为 False,则隐藏已筛选字段的 AutoFilter 下拉箭头。 默认情况下为 True

此处要注意:SubField参数是在第一个参数是某种特殊的数据类型,存在有子字段的时候,这个参数才可以使用,否则这个参数可以忽略。大多数情况下,这个参数是没有用的,因为我们的数据大多数情况都是单字段,不是复合字段,用不着它。

const SOURCERANGE = 'A1:E16';
function filterAutoFilter(){
	let rngSource =  ActiveWorkbook.Worksheets.Item('Sheet3').Range(SOURCERANGE);
	//1、班级列只有一个筛选条件,隐藏第1列的下拉箭头。不需要用的参数要使用null,而不是undefined
	//*rngSource.AutoFilter(1,'三(1)',null,null,false);
	//2、姓名列有多个筛选条件值。
	//*rngSource.AutoFilter(2,['*浩*', '*成*'],xlFilterValues);
	//3、期中列有多个筛选条件值:分数大于270或者小于等于230。
	//*rngSource.AutoFilter(3,'>270',xlOr, '<=230');
	//4、期中列有多个筛选条件值:分数大于230或者小于等于270。
	//*rngSource.AutoFilter(3,'>230',xlAnd, '<=270');
	//5、平均成绩列全部人的:前10名。
	//*rngSource.AutoFilter(5,'10',xlTop10Items);
	//6、平均成绩列:啥都不选。
	rngSource.AutoFilter(5,'><');
}
//1、班级列只有一个筛选条件,隐藏第1列的下拉箭头。不需要用的参数要使用null,而不是undefined
	//*rngSource.AutoFilter(1,'三(1)',null,null,false);
//2、姓名列有多个筛选条件值。
	//*rngSource.AutoFilter(2,['*浩*', '*成*'],xlFilterValues);
//3、期中列有多个筛选条件值:分数大于270或者小于等于230。
	//*rngSource.AutoFilter(3,'>270',xlOr, '<=230');
	//4、期中列有多个筛选条件值:分数大于230或者小于等于270。
	//*rngSource.AutoFilter(3,'>230',xlAnd, '<=270');
	//5、平均成绩列全部人的:前10名。
	//*rngSource.AutoFilter(5,'10',xlTop10Items);
	//6、平均成绩列:啥都不选。
	rngSource.AutoFilter(5,'><');
  • AdvancedFilter方法:AdvancedFilter (ActionCriteriaRangeCopyToRangeUnique)

名称

必需/可选

数据类型

说明

Action

必需

XlFilterAction

XlFilterAction 的常量之一,用于指定是否就地复制或筛选列表。

CriteriaRange

可选

Variant

条件区域。 如果省略该参数,则没有条件限制。

CopyToRange

可选

Variant

如果 ActionxlFilterCopy,则为复制行的目标区域。 否则,忽略该参数。

Unique

可选

Variant

如果为 True,则只筛选唯一记录。 如果为 False,则筛选符合条件的所有记录。 默认值为 False

function filterAdvancedFilter(){
	let rngSource =  ActiveWorkbook.Worksheets.Item('Sheet3').Range(SOURCERANGE);
	let rngCriteria =  ActiveWorkbook.Worksheets.Item('Sheet3').Range('H1:I2');
	//AdvancedFilter (Action、 CriteriaRange、 CopyToRange、 Unique)
	//不复制数据保留不动,不要唯一值;
	//当第一个参数为xlFilterInPlace时,第三个参数无效,当第一个参数为xlFilterCopy是,第三个参数需要指定。
	rngSource.AdvancedFilter(xlFilterInPlace,rngCriteria);
}

以上两个方法,返回值都是一个Range对象,分别对应的是WPS的用户界面中的筛选和高级筛选这两个功能。如下图:

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

小编的演示文档会保存起来,免费提供给大家学习,如有需要关注后私信说明要哪一章节的演示文档。

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

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

#头条创作挑战赛#

原文链接:,转发请注明来源!