【发布时间】:2020-06-08 17:52:44
【问题描述】:
我正在尝试编写一个脚本来每周保护不同范围的工作表。我已经弄清楚了每周锁定和触发来启动它。但是,每周都需要一个新的范围。如果是第 1 周;
var range = sheet.getRange(4, 5, 5, 6);
第 2 周需要;
var range = sheet.getRange(10, 5, 5, 6);
等等。因此,只有我的 Row 输入需要根据触发器激活的周数进行更改。
目前完整的脚本如下:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Multiple'); //INSERT SHEET NAME HERE
function lockRange(row, col){
var range = sheet.getRange(10, 5, 5, 6);
// Create protection object. Set description, anything you like.
var protection = range.protect().setDescription('Date1');
// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script will throw an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
protection.setDomainEdit(false);
}
}
【问题讨论】:
-
欢迎来到Stack Overflow。您似乎正在寻求有关在 Google Apps 脚本中实施算法的帮助。请添加您的搜索/研究工作的简要描述(如 How to Ask 中所建议的)关于如何根据周设置行号(提示:查找 JavaScript 问题)
-
您应该在某处为每周范围的开始设置一个基准(比如 2020 年 6 月 1 日星期一),然后计算从那时起已经过去了多少整周,以计算传递给 getRange 的第一个参数.
标签: javascript datetime google-apps-script google-sheets triggers