如何为Google Sheets脚本CheckIn函数添加B11、D11非空必填校验
Google Sheets Apps Script CheckIn函数必填校验修改方案
修改后的完整代码
// 请先定义你需要匹配的搜索列索引(从0开始计数,例如A列对应0,B列对应1) const SEARCH_COL_IDX = 1; // 这里请根据你的实际业务修改成对应值 function CheckIn() { var formS = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("form"); var logS = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("log"); // 获取必填字段值并做去空处理 var val1 = formS.getRange("B11").getValue().toString().trim(); var val2 = formS.getRange("D11").getValue().toString().trim(); // 非空校验:任意字段为空则终止执行 if (!val1 || !val2) { SpreadsheetApp.getUi().alert("B11、D11为必填项,请填写完整后再提交"); return; } var values1 = [[val1]]; var values2 = [[val2]]; var str = formS.getRange("B2").getValue(); var values = logS.getDataRange().getValues(); for (var i = 0; i < values.length; i++) { var row = values[i]; if (row[SEARCH_COL_IDX] == str) { var INT_R = i + 1; logS.getRange(INT_R,7).setValues(values1); logS.getRange(INT_R,8).setValues(values2); SpreadsheetApp.getUi().alert("Checked In"); } } }
修改说明
- 新增了必填校验逻辑:提前获取B11、D11的取值后做去空格处理,只要任意一个字段为空,就弹出提示并终止函数运行,不会执行后续的日志写入操作,避免空数据写入
- 移除了原代码中多余的标记符号,补充了原代码缺失的
SEARCH_COL_IDX常量定义提示,你可以根据自己实际要匹配的列修改这个常量值 - 优化了取值逻辑,避免重复调用单元格读取接口,提升运行效率
内容的提问来源于stack exchange,提问作者test tester
相关产品推荐
相关产品推荐

