单选取代关联查找取值(文本化):告别卡顿
目的原理
目的:查找取值文本化,告别卡顿。
查找引用等,取值文本化,避免每增加一条记录,没完没了的运算;记录达到一定程度,运算翻倍,运来越卡
原理:关联换单选,自动化就可以查找到。
录入表:
选择:部门(关联字段改为单选字段);照样可以取到查找引用取到的值(且:文本化)
更新单选(自动化+脚本)
选项表:
部门:新增或修改
录入表:单选项追加更新
--自动化设置:
第1步
第2步
--脚本配置:单选更新
--只需要更改数据表名称、字段名称
// 定义常量
const SHEET_NAME_ENTRY = "录入";//录入表名
const FIELD_NAME_DEPARTMENT = "@选择:部门";//录入表单选项
const SHEET_NAME_OPTIONS = "选项";//选项表名
const RANGE_FIELD_DEPARTMENT = "@部门";//选项表中,对应录入表的的单选项
Time.sleep(1000); // 由于要考虑到正常同步加载的时间,延时1000毫秒(1秒)后执行
// 获取sheetCount选择表记录的总数
var sheetCount = Application.Sheets(SHEET_NAME_OPTIONS).RecordRange.Count;
// 将sheetCount转换为字符串并拼接到RecordRange的参数中
const range = Application.Sheets(SHEET_NAME_OPTIONS).Views(1).RecordRange("1:" + sheetCount, RANGE_FIELD_DEPARTMENT);
// 获取范围的值
const dbCellValue = range.Value;
// 展平dbCellValue
const flatDbCellValue = dbCellValue.flat();
// 获取录入表字段描述
const field = Application.Sheets(SHEET_NAME_ENTRY).FieldDescriptors(FIELD_NAME_DEPARTMENT);
const prop = field.Select;
// 提取prop.Items中的value
const itemsValues = [];
prop.Items.forEach(item => {
itemsValues.push(item.value);
});
// 合并dbCellValue和itemsValues,并去重
const allValues = itemsValues.concat(flatDbCellValue);
const uniqueValues = Array.from(new Set(allValues));
// 创建一个数组来存储新的单选
const Items = [];
// 遍历dbCellValue中的每个记录,并将其添加到Items数组中
uniqueValues.forEach((item) => {
Items.push({"value": item, "colorHex": "#0081C2"});
});
// 将新的单选设置到字段描述符的Items属性中
prop.Items = Items;
// 单选更改
field.Apply();
查找取值(自动化)
--查找取值
--自动化设置
第1步选择单选触发自动化
第2步选项表中查找:单选项
第3步录入表取值第2步的字段
本技巧链接:
更多技巧:
✅【金日大全】WPS多维表格技巧 ---人人可添加应用(小技巧)
@金山办公