Google表格 - 确保单元格在执行脚本之前有一个值
问题描述:
我希望仅在所有必需的单元格都包含信息时才执行脚本。Google表格 - 确保单元格在执行脚本之前有一个值
上面表显示的布局如何。需要为脚本启动的行是列B到G
我还希望但不是必需的一个额外功能是,如果用户没有填写所有需要的单元格,它将突出显示它们红色并删除相关活动行的列H & I中的值。
下面是执行时H列的值为“已完成”
function moveComplete() {
Utilities.sleep(200);
var sheetNameToWatch = "REQUEST";
var columnNumberToWatch = 9;
var valueToWatch = "COMPLETED";
var sheetNameToMoveTheRowTo = "ARCHIVE";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveCell();
if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 2);
sheet.getRange(range.getRow(), 2, 1, sheet.getLastColumn()).setDataValidation(null).moveTo(targetRange);
sheet.deleteRow(range.getRow());
var lastrow = sheet.getLastRow();
sheet.insertRows(lastrow, 1);
}
}
答
你应该触发检查脚本上所有的(取决于你所需要的值)对应于所需值的单元格与onEdit()
。之后,只需触发你的moveComplete()
函数来填充你需要的其他单元格。
这Google Docs Help Forum post可能会给你一个想法如何做到这一点。只需修改那里已经提供的一些代码片段即可。其他有用的文档: