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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 仅当对特定工作表进行编辑时才运行OneEdit_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 仅当对特定工作表进行编辑时才运行OneEdit

Google apps script 仅当对特定工作表进行编辑时才运行OneEdit,google-apps-script,google-sheets,Google Apps Script,Google Sheets,全部: 我是新来的。。。非常新的编码,所以我很抱歉我的编码可能会让人畏缩。我有一个脚本,它可以根据一个名为“教师信息”的工作表上的单元格值显示和隐藏工作表。该脚本工作得很好,只是在对文件中的任何工作表进行编辑时它都会运行。我只希望它在“教师信息”表发生更改时运行。请告知。感谢您分享您的专业知识。这是我目前的代码: function HideSheets() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet1 = ss.

全部:

我是新来的。。。非常新的编码,所以我很抱歉我的编码可能会让人畏缩。我有一个脚本,它可以根据一个名为“教师信息”的工作表上的单元格值显示和隐藏工作表。该脚本工作得很好,只是在对文件中的任何工作表进行编辑时它都会运行。我只希望它在“教师信息”表发生更改时运行。请告知。感谢您分享您的专业知识。这是我目前的代码:

function HideSheets() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = ss.getSheetByName("Teacher Information");
  var sheet2 = ss.getSheetByName("SGO1 Plan");
  var sheet3 = ss.getSheetByName("SGO1 Data");
  var sheet4 = ss.getSheetByName("SGO1 Report");
  var sheet5 = ss.getSheetByName("SGO2 Plan");
  var sheet6 = ss.getSheetByName("SGO2 Data");
  var sheet7 = ss.getSheetByName("SGO2 Report");
  var sheet8 = ss.getSheetByName("SGO 1 Plan");
  var sheet9 = ss.getSheetByName("SGO 1 Data");
  var sheet10 = ss.getSheetByName("SGO 1 Report");
  var sheet11 = ss.getSheetByName("SGO 2 Plan");
  var sheet12 = ss.getSheetByName("SGO 2 Data");
  var sheet13 = ss.getSheetByName("SGO 2 Report");

  var cell1 = sheet1.getRange('C22');
  var cell2 = sheet1.getRange('AJ22');

  if (cell1.getValue() == "") {
    sheet2.showSheet();
    sheet3.showSheet();
    sheet8.showSheet();
    sheet9.showSheet();
  }

  if (cell1.getValue() == "0") {
    sheet2.hideSheet();
    sheet3.hideSheet();
    sheet8.hideSheet();
    sheet9.hideSheet();
  }

  if (cell1.getValue() == "1") {
    sheet2.showSheet();
    sheet3.showSheet();
    sheet8.hideSheet();
    sheet9.hideSheet();
  }

  if (cell1.getValue() == "2") {
    sheet2.hideSheet();
    sheet3.hideSheet();
    sheet8.showSheet();
    sheet9.showSheet();
  }

  if (cell2.getValue() == "") {
    sheet5.showSheet();
    sheet6.showSheet();
    sheet11.showSheet();
    sheet12.showSheet();
  }

  if (cell2.getValue() == "0") {
    sheet5.hideSheet();
    sheet6.hideSheet();
    sheet11.hideSheet();
    sheet12.hideSheet();
  }

  if (cell2.getValue() == "1") {
    sheet5.showSheet();
    sheet6.showSheet();
    sheet11.hideSheet();
    sheet12.hideSheet();
  }

  if (cell2.getValue() == "2") {
    sheet5.hideSheet();
    sheet6.hideSheet();
    sheet11.showSheet();
    sheet12.showSheet();
  }

}

您可以检查图纸名称,然后根据该名称继续操作

大概是这样的:

function HideSheets(e) {
   if (e.range.getSheet().getName() != "Teacher Information") {
       // If the sheet name is not equal to "Teacher Information" then Back Off..!!
       return
   }
   // Put your other codes below
   // More codes
}
这将在继续之前检查工作表名称,如果它不等于
“教师信息”
,则它将返回/中断,并且不会执行后面的代码


参考并进一步阅读:(根据techhowch评论,归功于他)

您可以检查工作表名称并根据该名称继续操作

大概是这样的:

function HideSheets(e) {
   if (e.range.getSheet().getName() != "Teacher Information") {
       // If the sheet name is not equal to "Teacher Information" then Back Off..!!
       return
   }
   // Put your other codes below
   // More codes
}
这将在继续之前检查工作表名称,如果它不等于
“教师信息”
,则它将返回/中断,并且不会执行后面的代码


参考并进一步阅读:(根据techhowch的评论,归功于他)

你不能说这是一个编辑触发,可以稍微不同,但你也可以这样做

var ss = SpreadsheetApp.getActiveSpreadsheet();
if( ss.getActiveSheet().getName() !== "Teacher Information" ) return;

您不会说这是否是一个On-edit触发器,可以稍微不同地执行,但您也可以这样做

var ss = SpreadsheetApp.getActiveSpreadsheet();
if( ss.getActiveSheet().getName() !== "Teacher Information" ) return;

这起作用了。。。我还不到15岁,所以我无法给出答案,但我想确认这是有效的。。。谢谢。@Mark单击这个答案左边的勾号。这很有效。。。我还不到15岁,所以我无法给出答案,但我想确认这是有效的。。。谢谢。@Mark单击此答案左侧的勾号。可能重复的可能重复的