请原谅我,因为我对此还很陌生,可能缺少一些简单的东西。
我有一个电子表格,我可以从模板创建数据,并在模板上运行脚本以创建成为用户任务的表单。表单中的编辑URL用于完成任务,并记录在主表(Sheet2)上,其中包含状态,附件,数据戳记和电子邮件地址。从那里,我试图创建一个任务列表,这些任务需要从我的主表到另一个电子表格上的另一个工作表(LOG)的批准,但是我的目标电子表格存在openByID
问题。它说它是未定义的。我可以在同一电子表格中的工作表中使用它,但如果可能,我希望在其他电子表格中使用它。当状态更改为“是”且仅针对特定任务(“验证报告”,“维护备忘录”,“检查报告”)时,所有这些工作都在Sheet2的Change上完成
function onChange() {
// moves a row from one sheet to another sheet when a value is entered in a column and another column has specific values
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();
var activeRow = cell.getRow();
var taskCheck=sheet.getRange(activeRow, 2);
var target = SpreadsheetApp.openByID("my spreadsheet id");
var targetSheet = target.getSheetByName(sheetNameToMoveTheRowTo);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
if (sheet.getName() != sheetNameToMoveTheRowTo &&
cell.getColumn() == columnNumberToWatch &&
cell.getValue().toLowerCase() == valueToWatch &&
(taskCheck.getValue() == "Verfication Report" || taskCheck.getValue() == "Maintenance Memo" || taskCheck.getValue() == "Check Report"))
{
sheet.getRange(cell.getRow(), 1, 1, sheet.getLastColumn()).copyTo(targetRange);
}
}