Google表格 - 确保单元格在执行脚本之前有一个值

问题描述:

我希望仅在所有必需的单元格都包含信息时才执行脚本。Google表格 - 确保单元格在执行脚本之前有一个值

How a row should look before being sent

上面表显示的布局如何。需要为脚本启动的行是列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可能会给你一个想法如何做到这一点。只需修改那里已经提供的一些代码片段即可。其他有用的文档: