网站首页 > 技术教程 正文
本节是WPS表格常用内置对象模型Range的最后一点内容。
填充类方法:AutoFill、FillDown、FillUp、FillRight、FillLeft(演示AutoFill和FillDown)
查找替换类方法:Find、FindNext、FindPrevious、Replace(演示Find和Replace)
练习
练习1:练习自动填充、向下填充
一共六列数据:第三列是求第一列和第二列之和;第六列是求第四列及第五列之和。
分别用自动填充(AutoFill)和向下填充(FillDown).
AutoFill演示
//AutoFill,自动填充rngSource.AutoFill (FillTarget, AutoFillType);
//意思是将rngSource单元格的内容,自动扩展到FillTarget目标单元格区域,扩展的方式,采用自动填充的类型
function fillAutoFill(){
let wsh = ActiveWorkbook.Worksheets('Sheet1');
let target = wsh.Range('E2:E16');
let source = wsh.Range('E2');
source.Formula = '=C2+D2';
source.AutoFill(target,xlFillSeries);
}
//上述代码中:源单元格区域就是E2单元格,先设置好这个单元格的公式。
//接下来设置好目标单元格区域:目标单元格区域是E2:E16这个区域,需自动向下填充公式的
/*xlFillSeries:是个枚举类型的值,为2。在此处的意思是将源区域中的值扩展到目标区域中,形式为系列(如,“1, 2”扩展为“3, 4, 5”)。
格式从源区域复制到目标区域,如有必要可重复执行。
*/
上述代码中的枚举AutoFillType的种类如下,如果该参数省略默认为0即是xlFillDefault:
名称 | 值 | Description |
xlFillCopy | 1 | 将源区域的值和格式复制到目标区域,如有必要可重复执行。 |
xlFillDays | 5 | 将星期中每天的名称从源区域扩展到目标区域中。 格式从源区域复制到目标区域,如有必要可重复执行。 |
xlFillDefault | 0 | Excel 确定用于填充目标区域的值和格式。 |
xlFillFormats | 3 | 只将源区域的格式复制到目标区域,如有必要可重复执行。 |
xlFillMonths | 7 | 将月名称从源区域扩展到目标区域中。 格式从源区域复制到目标区域,如有必要可重复执行。 |
xlFillSeries | 2 | 将源区域中的值扩展到目标区域中,形式为系列(如,“1, 2”扩展为“3, 4, 5”)。 格式从源区域复制到目标区域,如有必要可重复执行。 |
xlFillValues | 4 | 只将源区域的值复制到目标区域,如有必要可重复执行。 |
xlFillWeekdays | 6 | 将工作周每天的名称从源区域扩展到目标区域中。 格式从源区域复制到目标区域,如有必要可重复执行。 |
xlFillYears | 8 | 将年从源区域扩展到目标区域中。 格式从源区域复制到目标区域,如有必要可重复执行。 |
xlGrowthTrend | 10 | 将数值从源区域扩展到目标区域中,假定源区域的数字之间是乘法关系(如,“1, 2,”扩展为“4, 8, 16”,假定每个数字都是前一个数字乘以某个值的结果)。 格式从源区域复制到目标区域,如有必要可重复执行。 |
xlLinearTrend | 9 | 将数值从源区域扩展到目标区域中,假定数字之间是加法关系(如,“1, 2,”扩展为“3, 4, 5”,假定每个数字都是前一个数字加上某个值的结果)。 格式从源区域复制到目标区域,如有必要可重复执行。 |
xlFlashFill | 11 | 根据先前用户操作检测到的模式,将源范围中的值扩展到目标范围,如有必要,请重复。 |
FillDown演示
/*
FillDown:从指定区域的顶部单元格开始向下填充,直至该区域的底部。
区域中首行单元格的内容和格式将复制到区域中其他行内。
*/
function fillFillDown(){
let wsh = ActiveWorkbook.Worksheets('Sheet1');
let rngFill = wsh.Range('H2:H16');//指定区域
rngFill.Cells(1).Formula = '=F2+G2';//指定区域的顶部单元格
rngFill.FillDown();//指定区域向下填充
}
上述两个方法的演示效果:
练习2:在指定区域查找名字中带有“成”的学生成绩情况,Find的语法如下:
Find (What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
其实这个方法就是用户界面中的“查找”功能,它们一一对应的关系如下图:
这些参数的含义是:
名称 | 选项 | 数据类型 | 说明 |
What | 必需 | Variant | 要搜索的数据。 可为字符串或任意 Microsoft Excel 数据数型。 |
After | 可选 | Variant | 要在其后开始搜索的单元格。 从用户界面搜索时,这对应于活动单元格的位置。请注意,After 必须是区域内的单个单元格。 请注意,搜索在此单元格之后开始;在方法回绕到此单元格之前,不会搜索指定的单元格。如果未指定此参数,搜索将在区域左上角的单元格后面开始。 |
LookIn | 可选 | Variant | 可以是下列 XlFindLookIn常量之一:xlFormulas、xlValues、xlComments 或 xlCommentsThreaded。 |
LookAt | 可选 | Variant | 可以是下列 XlLookAt常量之一:xlWhole 或 xlPart。 |
SearchOrder | 可选 | Variant | 可以是以下 XlSearchOrder常量之一:xlByRows 或 xlByColumns。 |
SearchDirection | 可选 | Variant | 可以是以下 XlSearchDirection常量之一: xlNext 或 xlPrevious。 |
MatchCase | 可选 | Variant | 如果为 True,则搜索区分大小写。 默认值为 False。 |
MatchByte | 可选 | Variant | 仅在选择或安装了双字节语言支持时使用。 如果为 True,则双字节字符仅匹配双字节字符。 如果为 False,则双字节字符匹配其单字节等效字符。 |
SearchFormat | 可选 | Variant | 搜索格式。 |
function findFind(){
//Range.Find (What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
/*
wsh:是定工作表对象变量,用来存贮Sheet1工作表
rngFind:是用来存贮我们要进行查找的单元格区域。
*/
let wsh = ActiveWorkbook.Worksheets('Sheet1');
let rngFind = wsh.Range('A1:H16');
/*
findContent:是要查找的内容,即对应上方语法中的what
findResult:是个数组,是用来存放每次查找的结果的。因为find这个方法自己并不会主动去循环查找,
要想实现循环查找,就要通过一个数组将每次查找的结果都存贮起来。
findFlag:是一个布尔类型的值,用来制作一个循环标识,当它是true时,就让循环进行下去,false时就
退出循环。
Counter:是一个整数,用来做计数器的,目的是为了防止出现死循环。一但循环次数超过一定次数,就
退出循环。
lastRange:是用来存放上一次被查找到的位置,用以实现查找下一个要查找的内容。
*/
let findContent = '成';
let findResult = [];
let findFlag = true;
let Counter = 0;
let lastRange;
const ENDCOUNT = 100000;
/*
以下while循环是实现连续查找的核心。即是一次性将所有符合的内容都查找出来。
当findFlag为true时,循环就会一直执行;当为false时,循环终止。
*/
while(findFlag)
{
let v;
//条件运算符:如果Counter为0,则表示是第一次查找,那就执行find方法,否则就执行findnext方法
lastRange = Counter == 0 ? rngFind.Find(findContent) : rngFind.FindNext(lastRange);
//将查找到的单元格的值赋值给v
v = lastRange.Value2;
//条件运算符:如果数组中没有v,就把v加入到数组中,如果存在了,就将Counter直接设为循环终了
(findResult.indexOf(v) < 0) ? findResult.push(v) : Counter = ENDCOUNT;
/*条件运算符:如果v为空,即上述已经找不到要查找的内容了或者达到循环次数了,就让循环标识为false
否则为true。
*/
findFlag = (v == undefined || v == null || Counter == ENDCOUNT) ? false : true;
//一次循环结束,让Counter自增1。
Counter++;
}
//将查找到的结果赋值到I2单元格开始的单元格区域中。
ActiveWorkbook.Worksheets('Sheet1').Range('I2').Resize(1,findResult.length).Value2 = findResult;
}
以上代码复制后即可运行。
小编的演示文档会保存起来,免费提供给大家学习,如有需要关注后私信说明要哪一章节的演示文档。
请注意:演示文档与小编的教程同步即是小编的教程到哪一步,演示文档就到哪一章节。
关注我,持续共同学习,一起踏上wps宏(JSA)的登山之路。
- 上一篇: 那些你不知道的 TCP 冷门知识
- 下一篇: VBA学习方法---理解Private和Sub的含义
猜你喜欢
- 2024-11-22 CVPR2020|3D-VID:基于LiDar Video信息的3D目标检测框架
- 2024-11-22 redis lrange命令:高效实现分页查询和实时排行榜功能
- 2024-11-22 避雷器的结构与原理
- 2024-11-22 Python——range(10,0,-1)倒序输出
- 2024-11-22 Excel统计函数——BINOM.DIST.RANGE函数详解(二项式分布概率)
- 2024-11-22 Python 0-5 循环语句和列表元组
- 2024-11-22 朋友叫人上门修电脑,维修师傅没安好心,看了一眼:显示器坏了
- 2024-11-22 压力控制器使用与调整方法
- 2024-11-22 VBA学习方法---理解Private和Sub的含义
- 2024-11-22 那些你不知道的 TCP 冷门知识
你 发表评论:
欢迎- 01-11关于Vmware workstation的网络设置
- 01-11使用VMware Workstation虚拟机安装Windows 10详细教程
- 01-11VMware Workstation 17.5.1 Pro for Windows & Linux - 桌面虚拟化软件
- 01-11VMware? Workstation 17 Pro软件中,如何显示 “我的计算机” 选项卡
- 01-11银河麒麟桌面操作系统安装VMware workstation pro
- 01-11VmwareWorkstation17.6安装windows7x64虚拟机后安装vmtools
- 01-11发布VMware Workstation Pro 17.0稳定版
- 01-11VMware Workstation安装ESXi 7安装篇
- 最近发表
-
- 关于Vmware workstation的网络设置
- 使用VMware Workstation虚拟机安装Windows 10详细教程
- VMware Workstation 17.5.1 Pro for Windows & Linux - 桌面虚拟化软件
- VMware? Workstation 17 Pro软件中,如何显示 “我的计算机” 选项卡
- 银河麒麟桌面操作系统安装VMware workstation pro
- VmwareWorkstation17.6安装windows7x64虚拟机后安装vmtools
- 发布VMware Workstation Pro 17.0稳定版
- VMware Workstation安装ESXi 7安装篇
- 如何安装虚拟机(vmware workstation)
- VMware Workstation之网络配置
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)