Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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
Javascript 如何为编辑的每个特定工作表执行某些操作?_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 如何为编辑的每个特定工作表执行某些操作?

Javascript 如何为编辑的每个特定工作表执行某些操作?,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,例如,我试图检查“Sheet1”是否处于活动状态,有人编辑它然后执行某些操作,如果“Sheet2”处于活动状态,有人编辑它然后执行其他操作。下面是一个代码示例,但是如果有人在任何工作表中进行编辑,它将加载相应工作表中的所有代码,这是一种浪费 有没有办法检查是否有人编辑了特定的工作表?感谢您的回复:) 以下是示例代码: function onEdit(e){ var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("

例如,我试图检查“Sheet1”是否处于活动状态,有人编辑它然后执行某些操作,如果“Sheet2”处于活动状态,有人编辑它然后执行其他操作。下面是一个代码示例,但是如果有人在任何工作表中进行编辑,它将加载相应工作表中的所有代码,这是一种浪费

有没有办法检查是否有人编辑了特定的工作表?感谢您的回复:)

以下是示例代码:

function onEdit(e){
  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  const mean= ss.getRange('C2:C');
  mean.setFormula("=SUM((A2+B2)/2)");
  
  var ss1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
  const total= ss1.getRange('E2:E');
  total.setFormula("=SUM(A2+B2+C2+D2)");
}

我相信你的目标如下

  • 您希望在编辑工作表时为每个工作表运行脚本
在这种情况下,可以使用OnEdit事件的事件对象选择脚本,如下所示

修改脚本:
  • 在此修改中,当编辑“Sheet1”时,
    const mean=sheet.getRange('C2:C');平均值设置公式(“=总和((A2+B2)/2)”正在运行。编辑“Sheet2”时,
    const total=sheet.getRange('E2:E');总计。设置公式(“=总和(A2+B2+C2+D2)”正在运行
参考资料:

我建议修改脚本。你能确认一下吗。但我担心我是否能正确理解你的目标。首先,你能确认我对你目标的理解是否正确吗。如果这不是你期望的方向,我道歉。那时候,请告诉我。我想修改它。是的,它完美的工作!非常感谢你!谢谢你的回复。我很高兴你的问题解决了。也谢谢你。
function onEdit(e){
  var range = e.range;
  var sheet = range.getSheet();
  var sheetName = sheet.getSheetName();
  if (sheetName == "Sheet1") {
    const mean = sheet.getRange('C2:C');
    mean.setFormula("=SUM((A2+B2)/2)");
  } else if (sheetName == "Sheet2") {
    const total = sheet.getRange('E2:E');
    total.setFormula("=SUM(A2+B2+C2+D2)");
  }
}