如何通过AppScript获取Google Sheets单元格绝对值且不修改原数据集
实现方案
你只需要修改给C11单元格赋值的逻辑,用JavaScript原生的Math.abs()方法对读取到的row[1]值做绝对值转换即可,这个操作仅处理从数据集读取到的临时变量,不会修改DataInventario工作表的原始内容。
修改后的完整代码
var SEARCH_COL_IDX = 1; // 定义要搜索的列索引,0对应A列 function SearchInventario() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var formS = ss.getSheetByName("EntryFrmMovimiento"); // 存储录入数据的表单工作表 var str = formS.getRange("E4").getValue(); // 存储搜索条件的单元格 var values = ss.getSheetByName("DataInventario").getDataRange().getValues();// 数据集所在工作表 for (var i = 0; i < values.length; i++) { var row = values[i]; if (row[SEARCH_COL_IDX] == str) { formS.getRange("C10").setValue(row[0]); formS.getRange("C11").setValue(Math.abs(row[1]));// 仅在此处对读取到的数值做绝对值转换 } } }
逻辑说明
Math.abs()是JavaScript内置的绝对值计算方法,会自动将输入的数字转换为非负数值输出- 你读取的
values是DataInventario数据集的内存副本,没有调用对应工作表的写操作接口,所以原始数据不会被改动 - 转换后的数值仅写入
EntryFrmMovimiento工作表的C11单元格,符合你的修改范围要求
内容的提问来源于stack exchange,提问作者Riggs
相关产品推荐
相关产品推荐

