lovert 发表于 2021-8-9 21:04:35

自定义函数教程

本帖最后由 lovert 于 2024-4-15 11:05 编辑

照猫画虎,看看我写的自定义函数UNIQUEE(参数1),函数的功能很简单,就是将用逗号隔开的字符串去掉重复的例如:UNIQUEE("aa,aa,bb,cc,aa,bb,dd,dd,ss,ss,ss")结果就是"aa,bb,cc,dd,ss"




上面的自定义函数是针对(A1,B1,B2)这个格式的参数引用,对于像(A1:K1)这种单元格区域的引用的自定义里面的获取区域值得方式就发生了变化

注意红色框的变化,还有下面的红色框语句写的位置,写到上面了,就错了

使用前设计器上传js


lovert 发表于 2024-4-13 09:44:16

var row = arg2.yf.row;
      var col = arg2.yf.col;
var rowCount = arg2.yf.rowCount;
var colCount = arg2.yf.colCount;这个是错的,yf是代码压缩后的属性名称,如果spreadjs版本变了这个就失效了,新版本 https://gcdn-cdn.grapecity.com.cn/data/attachment/forum/202404/13/093028nqccc23l4nqjhq2t.png
yf已经变成了$gt了
正确的应该是调用
https://gcdn-cdn.grapecity.com.cn/data/attachment/forum/202404/13/093236yrokv29nxdonvndz.png
var row = arg2.getRow();
var col = arg2.getColumn();
var rowCount = arg2.getRowCount();
var colCount = arg2.getColumnCount();

phoben 发表于 2021-8-10 13:59:03

很好!!!!
数组去重只需要这样就可以

var newArray = [...new Set(arguments)];

孤狼 发表于 2021-8-9 21:16:16

果然是大佬!:hjyzw:

lovert 发表于 2021-8-9 21:36:40

注意自定义函数的名称不要和活字格自带的冲突,如果你在测试的时候发现不对劲,尝试改个名字也许会好很多,碰到的坑,才会这么说的,像上面的,虽然活字格里没有UNIQUE函数,但是写成UNIQUE你会发现结果不是想要的,换个名字UNIQUEE就好了

紫色幽魂 发表于 2021-8-9 23:56:30

顶一个

lovert 发表于 2021-8-10 14:37:07

百度给了12种方法,你的这个是最简洁的但也存在兼容性问题

olookok 发表于 2021-8-11 11:13:44

一看到代码,莫名的崇拜

hubei333 发表于 2021-8-11 11:56:17

感谢分享,不懂代码,崇拜中全部照抄:lol

dtcq 发表于 2023-6-13 13:18:21

:victory:厉害

137294886 发表于 2023-6-13 14:51:06

厉害
页: [1] 2
查看完整版本: 自定义函数教程