Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 当Col 11中的值=Yes且使用Google脚本时,如何将行移动到另一个工作表_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 当Col 11中的值=Yes且使用Google脚本时,如何将行移动到另一个工作表

Google apps script 当Col 11中的值=Yes且使用Google脚本时,如何将行移动到另一个工作表,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我在第2页(“成员”)中有一份摘要,该摘要来自第1页(“接待”)中的表格。一旦任务被更新并在工作表1中设置为“是”,然后在工作表2中设置为“自动保存”,我想运行一个脚本,如果接收中更新的“已完成”值设置为“是”,则将行从“成员”移动到“存档”。实际上,为了让它工作,我在“成员”中放了一个带有脚本的按钮,我必须放在单元格中,值为“是”才能将行移动到“存档”。。。我希望它是自动化的 你能帮我吗 以下是我使用的脚本: // callFunctionB() cause i use onEdit(e) {

我在第2页(“成员”)中有一份摘要,该摘要来自第1页(“接待”)中的表格。一旦任务被更新并在工作表1中设置为“是”,然后在工作表2中设置为“自动保存”,我想运行一个脚本,如果接收中更新的“已完成”值设置为“是”,则将行从“成员”移动到“存档”。实际上,为了让它工作,我在“成员”中放了一个带有脚本的按钮,我必须放在单元格中,值为“是”才能将行移动到“存档”。。。我希望它是自动化的

你能帮我吗

以下是我使用的脚本:

// callFunctionB() cause i use onEdit(e) { callFunctionA(e);callFunctionB(e) }

function callFunctionB(e) {

 var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getActiveSheet();
  var r = s.getActiveRange();
  if(s.getName() == "Members" && r.getColumn() == 11 && r.getValue() == 'Yes') {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Archive");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
}

嗨,库珀,我试过了,但是:TypeError:无法读取未定义的属性“range”。你知道为什么吗?没有onedit事件对象,你无法运行函数。i、 e.您不能从脚本编辑器运行它。我从这样的onEdit函数开始:
function onEdit(e){callFunction(e)callFunctionB(e)}
但它也不起作用。您是否考虑过查看任何插件,有一些可用的,例如:
function callB(e) {
  var s=e.range.getSheet();
  if(s.getName()=="Members" && e.range.columnStart==11 && e.value=='Yes') {
    e.source.getSheetByName("Archive").appendRow(s.getRange(e.range.rowStart,1,1,s.getLastColumn()).getValues()[0]);
    s.deleteRow(e.range.rowStart);
  }
}