好的,stackoverflow。
我会直接跳到我的问题中。我有一个主要的工作簿,其中包含大量信息(通过查询/导入范围)将正确的信息提供给几个单独的工作簿。我每周更新主工作簿,并使用以下代码每周为各个工作簿创建新工作表:
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var pasteSheet = [ {name: "Paste Sheet", functionName: "copySheet"}];
ss.addMenu("Copy to Spreadsheets", pasteSheet);
}
function copySheet() {
var source = SpreadsheetApp.getActiveSpreadsheet();
var sheet = source.getSheets()[0];
var sheet2 = source.getSheets()[1];
var sourceFile = DriveApp.getFileById(source.getId());
var sourceFolder = sourceFile.getParents().next();
var folderFiles = sourceFolder.getFiles();
var thisFile;
while (folderFiles.hasNext()) {
thisFile = folderFiles.next();
if (thisFile.getName() !== sourceFile.getName()){
var currentSS = SpreadsheetApp.openById(thisFile.getId());
sheet.copyTo(currentSS);
sheet2.copyTo(currentSS);
currentSS.getSheets()[currentSS.getSheets().length-2].setName('W6');
currentSS.getSheets()[currentSS.getSheets().length-1].setName('W6 ISSUES');
}
};
}
此代码非常适合在每个工作簿中创建两个新工作表。
我的问题:在运行此脚本时,我一直在尝试不同的方法来尝试包含保护。我需要的是保护单张纸(W6和W6问题)。 W6的第一个应该完全受到保护,但范围A3:A20除外,我需要允许各个表的所有者进行编辑。 ' W6问题'应该完全受到保护。
我将如何实现这一目标?任何帮助将不胜感激。
答案 0 :(得分:0)
可在此处找到保护信息:https://developers.google.com/apps-script/reference/spreadsheet/protection
以下是保护“W6问题”的示例
var W6issues = currentSS.getSheets()[currentSS.getSheets().length-1].setName('W6 ISSUES');
var protection = W6issues.protect().setDescription('Sample protected sheet');
对“W6”执行相同操作,然后对您不希望受保护的范围使用.remove(),https://developers.google.com/apps-script/reference/spreadsheet/protection#remove