好的,我在这方面还很陌生。我有一个Google电子表格,我先对其进行填充,然后运行脚本来创建表单,以完成任务。我的最终用户将任务标记为已完成。我想要电子表格中的条目更改为“是”,并且是“验证”任务以复制到另一个工作表(日志)。如果我只有一个观察者,则可以复制条目,但是在将其他if语句放入其中时遇到问题。这是我要测试的东西...
function onChange() {
// moves a row from any sheet to an archive sheet when a magic value is entered in a column
var columnNumberToWatch = /* column D */ 4; // column A = 1, B = 2, etc.
var valueToWatch = "yes";
var sheetNameToMoveTheRowTo = "LOG";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet2");
var cell = sheet.getActiveCell();
if ( sheet.getName() != sheetNameToMoveTheRowTo && cell.getColumn() == columnNumberToWatch
&& cell.getValue().toLowerCase() == valueToWatch) {
if (cell.getColumn() == 2 && cell.getValue() == "Validate") {
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet.getRange(cell.getRow(), 1, 1, sheet.getLastColumn())
.copyTo(targetRange);
}
}
}
答案 0 :(得分:0)
您似乎正在尝试使用相同的cell
变量监视两个单独的位置。首先,将cell
初始化为活动单元格,然后检查该列是否为#4,然后在第二个if
语句中,使用cell
到getColumn
2。>
也许创建一组新的变量以用于验证检查:
var activeRow=cell.getRow();
var valCheck=sheet.getRange(activeRow, 2);
然后if
语句更改为:
if (valCheck.getValue() == "Validate") {