google-apps-script - 仅在对特定工作表进行编辑时运行 OnEdit
问题描述
全部:
我是新手......对编码非常陌生,所以我很抱歉我的编码可能让人们畏缩。我有一个脚本,它将根据名为“教师信息”的工作表上单元格的值显示和隐藏工作表。该脚本运行良好,除非它在对文件中的任何工作表进行编辑时运行。我只希望它在“教师信息”表发生更改时运行。请指教。感谢您分享您的专业知识。这是我当前的代码:
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
}
这将在继续之前检查工作表名称,如果它不等于,"Teacher Information"
那么它将返回/中断并且不执行它后面的代码
参考和进一步阅读:https ://developers.google.com/apps-script/guides/triggers/events#edit (根据techhowch评论,归功于他)
推荐阅读
- amazon-web-services - 显示所有表的所有红移外部模式。如何限制外部模式中外部表的可见性?
- c# - 为什么没有正确使用 AttachedToParent 时 CLR 不会抛出异常?
- kotlin - 我如何在 swift Kotlin 多平台上使用 Flow?
- c# - XAML 填充组合框并定义组合项
- kotlin - 从 C 原生导出遍历 Kotlin 映射
- go - 从 YAML 文件中读取多个文档并使用 go yaml v3 编组它们
- flutter - 每次重建子部件时调用父部件的函数
- php - 将多个文件上传到 laravel 8 api
- python - 从大型数据集中采样
- firebase - Firebase 在 ESP32 上突然停止