WPS表格 JSA 学习笔记 |
您所在的位置:网站首页 › wps宏教程 › WPS表格 JSA 学习笔记 |
WPS表格 JSA 学习笔记
自定义公式单元格拼接JSON单元格内文字颜色引用系统自带公式TransposeVLookup
Sheet 工作表创建工作表工作表引用
Cells 单元格单元格引用
Range 范围单元格引用填写公式单元格赋值遍历遍历 Range 打印值按目标单元格背景颜色对指定 Range 求和遍历Range处理单元格内容遍历Range处理单元格颜色遍历Range加批注遍历Range加批注(带背景图)
批量删除行数组转置
Selection 选区Columns 列删除所有隐藏列
遍历单元格Sheet 范围内遍历Range 范围内遍历
设置公式参考资料
自定义公式
function 加括号(区域, 左括号, 右括号){
return `${左括号}${区域}${右括号||左括号}`;
}
注意参数类型,VLookup的前两个参数,传的都是单元格引用。 function 引用公式(){ Range('D1').Value2 = WorksheetFunction.VLookup(Range("C1"), Range("A:B"), 2, false); } Sheet 工作表 创建工作表Cells(行序号, 列序号) 获取第1行第1列,并选中 Cells.Item(1, 1).Select();获取第3行第3列,并选中。Item是VBA思想,去掉也是可以的。 Cells.(3, 3).Select(); Range 范围 单元格引用 function tes1t(){ Application.Worksheets.Item("Sheet2").Activate(); Range("A1").Value2 = "当前活动区域赋值s2"; Cells.Item(1, 2).Value2 = "当前活动单元格赋值s2"; } 选中A1:H8范围 Range("A1:H8").Select(); 选中第1行第1列到第3行第3列,也就是范围:A1:C3 Range(Cells.(1, 1),Cells.(3, 3)).Select(); 填写公式A1:H8范围内,每个单元格都填充公式Rand() function test(){ Application.Worksheets.Item("Sheet1").Activate(); Application.Range("A1:H8").Formula = "=Rand()"; } 单元格赋值注意:使用Value2 function test(){ Application.Range("A1:H1").Value2 = "666"; }A1:E1区域赋值 function test(){ Range("A1:E1").Value2 = [1,2,3,4,5] ; } 遍历 遍历 Range 打印值 function test(){ var rng = Range("A1:A20"); for(v of rng){ Console.log(v.Value2) }; } 按目标单元格背景颜色对指定 Range 求和这是个自定义公式,可以直接用了 /** * 按目标单元格背景颜色对指定 Range 求和 * @param rng 求和区域 * @param target 目标单元格 */ function sumByBgColor(rng, target){ let tc = target.Interior.Color; // 取目标单元格颜色。 return Array.from(rng) // rng转标准数组。这里的 range 应该只是个类数组对象 .filter( c => c.Interior.Color == tc) // 筛选颜色相同单元格 .reduce((a, c, i) => a + c.Value2 , 0); // 合计 } 遍历Range处理单元格内容给 A1:A20 的内容加个括号 function 遍历Range加括号(){ var rng = Range("A1:A20"); rng.Value2 = rng.Value2.map(v => { return `【${v}】`; }); } for(v of rng){ 遍历Range处理单元格颜色给 A1:A20 改背景色 function 遍历Range改背景色(){ var rng = Range("A1:A20"); Array.from(rng).forEach(v => { (obj=>{ obj.Color = 5296274; })(v.Interior); }); } 遍历Range加批注 function 遍历Range加批注(){ var rng = Range("A1:A20"); let len = rng.Count; for(let i=1; i var rng = Range("A1:A5"); let len = rng.Count; for(let i=1; iApplication.ActiveWorkbook.Path}\\img\\WPS-${i}.jpg`); // 批注添加背景图片 .\img\WPS-*.jpg } } 批量删除行 /** * 拼Range */ function 批量删除() { var rng = Range("A1:A50"); let unionRng = null; // 将所有符合条件的行拼在一起 for(r of rng){ if(/\D+/.test(r.Value2)){ // 删除条件:内容非数字 if(unionRng == null){ unionRng = r.EntireRow; }else{ unionRng = Application.Union(unionRng, r.EntireRow); } } }; // unionRng.Select(); unionRng.Delete(xlShiftUp); // 一次性删除 } /** * 拼地址 */ function 批量删除(){ var rng = Range("A1:A50"); // 将所有符合条件的行拼在一起 let rn = [...rng].filter(r=>/\D+/.test(r.Value2)) // 删除条件:内容非数字 .map(r=>r.Row+':'+r.Row); // 一次性删除 Range(rn.join(',')).Delete(xlShiftUp); } 数组转置目前WPS有点反人类。取的时候按列,存的时候按行。。。精神分裂。。。 得到: [ ["a1","b1","c1","d1","e1"], ["a2","b2","c2","d2","e2"], ["a3","b3","c3","d3","e3"], ["a4","b4","c4","d4","e4"], ["a5","b5","c5","d5","e5"] ] Columns 列 删除所有隐藏列 function deleteHiddenColumns(){ [...Columns] .map(col => col.EntireColumn) .filter(col => col.EntireColumn.Hidden) .forEach(col => col.Delete(xlShiftToLeft)); } 遍历单元格 Sheet 范围内遍历嵌套循环输出乘法口诀表 function test(){ Application.Worksheets.Item("Sheet1").Activate() for(let i = 1; i Application.Cells.Item(i, j).Value2 = i*j; } } } Range 范围内遍历嵌套循环输出乘法口诀表 这里的i,j表示range范围内的偏移量 function test(){ Application.Worksheets.Item("Sheet1").Activate() let rng = Range("C5:P20"); for(let i = 1; i rng.Cells.Item(i, j).Value2 = i*j; } } } 设置公式在C2单元格创建一个公式:在A列查找a2并返回B列对应的值。 Range('C2').Formula = '=VLookup("a2",A:B,2,false)'; 参考资料湖边的小屋圣迹:Excel、Word VBA 学习笔记 WPS 开放平台 WPS 宏编辑器概述 WPS 表格:自定义函数 从Visual Basic Script 转到 JavaScript |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |