不用公式完成取值(数字化):告别卡顿
脚本
关注:右上角红、蓝、灰、紫色的备注
第3行箭头左、右侧解释(=>)
箭头左侧:代表第2行的第2、3个字段;可以自定义字母个数英文逗号隔开
箭头右侧:代表第2行字段的各种运算「复杂的运算第3行描述给AIJ
代码
let Name = "数据表";
let Fields = ["金额", "数量", "单价"]; // 示例字段「第1个必须是取值的结果字段」
let customOperation = (b , c) => b * c; // 默认乘法操作,用户可以根据需要自定义{不包括第1个字段,箭头左侧}bcde字段和+=*/等运算(箭头右侧)
// 下面的不允许修改
Time.sleep(1000); // 由于要考虑到正常同步加载的时间,延时1000毫秒(1秒)后执行
// 获取数据表当前记录
// let sheetid_from = 1;
// let id_from = "T";
let sheetid_from = Context.argv.sheetId_from[0];
let id_from = Context.argv.id_from[0];
let rec_from = Application.Record.GetRecord({ SheetId: sheetid_from, RecordId: id_from });
// 遍历字段数组,从记录中取得每个字段的值
let Obj = {}; // 初始化对象用于存储字段值
Fields.forEach((field, index) => {
Obj[field] = rec_from.fields[field]; // 假设记录中的字段名与Fields数组中的名称相匹配
});
// 准备参数数组
let params = Fields.slice(1).map(field => Obj[field]);//排除Fields第1个字段的值(金额的下标是0:Fields[0]])
// 计算金额字段的值,使用 customOperation 函数处理所有参数
let result = params.reduce(customOperation);
Obj[Fields[0]] = result; // 将计算结果赋值给金额字段
// 准备更新的字段
let fieldsToUpdate = {
[Fields[0]]: Obj[Fields[0]] // 将计算后的金额值放入更新字段中
};
// 更新数据表记录
Application.Record.UpdateRecords({
SheetId: sheetid_from,
Records: [{
id: id_from,
fields: fieldsToUpdate, // 使用检查后存在的字段进行更新
}],
});
自动化
第1步 修改记录触发
指定字段:选择的字段是触发自动化触发的条件1
筛选字段:选择的字段不为空是触发自动化触发的条件2
第2步
填:脚本入参,选:公式设置脚本
复制下面的到入参:
{
"sheetId_from":,
"id_from":
}
添加数据表、记录的ID
最后一行没有逗号
点+冒号后面添加:
第一行添加第一步的数据表
第二行添加第一步的记录ID
🔔 | 要点: |
表达符号都是英文状态下录入
大括号{}
双引号""
冒号:
逗号,
第1个双引号中有1个大写字母
本技巧链接:
更多技巧:
✅【金日大全】WPS多维表格技巧 ---人人可添加应用(小技巧)
投票告别卡顿专辑,对你有帮助吗(3选1)
- 非常有帮助 1
- 有帮助 0
- 我习惯卡顿了 1
2人参与
截止时间:2024/12/31 13:11:33
@WPS多维表格产品官