我到处看了看,似乎 GAS 还没有赶上 Google 电子表格。是否有一种蛮力方法可以在工作表中的某些范围内设置保护..?(并且用所有公式制作一张受保护的表格并引用它们对我没有帮助。)
我通过谷歌找到了这个:https ://code.google.com/p/google-apps-script-issues/issues/detail?id=1721
我什至在底部评论。(更多的是抱怨而不是任何有用的东西。)但是我上面的那个人发布了这段代码:
//Function to Protect Target Sheet
function ProtectTargetSheet() {
//Enter ID for each Worksheet
var IDs = ["Sheeet_1", "Sheet_2"]
//Enter Page to protect, in order of WorkSheets
var Sheet_names = ["Page_1", "Page_2"]
//For each sheet in the array
for ( i = 0; i < IDs.length; i ++) {
//id of sheet
var sheet = IDs[i]
//activate dedicated sheet
var ActiveSheet = SpreadsheetApp.openById(sheet)
//Find last row and column for each sheet
var LastRow = ActiveSheet.getSheetByName(Sheet_names[i]).getLastRow();
var LastCol = ActiveSheet.getSheetByName(Sheet_names[i]).getLastColumn();
//Name of protectSheet
var Name = "Protect_Sheet";
//Range for Protection
var Named_Range = ActiveSheet.getSheetByName(Sheet_names[i]).getRange(1, 1, LastRow, LastCol);
//Impletment Protect Range
var protected_Range = ActiveSheet.setNamedRange(Name, Named_Range);
}
}
我看不出这如何在共享时为范围提供保护。似乎它只会创建一个命名范围。他确实说要先手动设置权限。但我想不通他到底是什么意思。
无论如何,我希望现在有人已经找到了一种方法来做到这一点,直到谷歌将 GAS 与其对应方同步。
我的愿望是,通过 100% 的代码,在工作表、电子表格中选择一个范围,并使其在我将整个电子表格共享给一个人时,他或她无法编辑该范围。他们必须能够编辑该工作表中的其他部分。只是没有那个范围。手动执行此操作很容易,但是当必须创建 100 个电子表格时,能够通过 GAS 执行此操作会有所帮助。
谢谢。