In einer Google-Tabelle mit dem Namen " Anwesenheit" befindet sich ein Blatt mit dem Namen " Vorlage" . Der Benutzer dupliziert dieses Blatt, benennt das Blatt mit dem aktuellen Datum um und verwendet dieses Blatt, um die Anwesenheit der Schüler zu markieren. Das Vorlagenblatt enthält geschützte Zellen. Die Teilnahme wird durch Eingabe der Studenten-ID-Nummer in das angegebene Feld (ungeschützte Zellen) gekennzeichnet. Ich verwende das folgende Skript, um mehrere Blätter zu duplizieren und sie jeden Tag umzubenennen:
function createDailyAttendance() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var refss = ss.getSheetByName("DataPointers");
// Get the range Row and Column information.
var dataRangeRow = refss.getRange("K2").getValue();
//var dataRangeCol = ss.getRangeByName(ColName).getValue();
// Get the range of cells that store Duplicate sheet name.
var AttendanceDataRange = refss.getRange(dataRangeRow);
var AttendanceObjects = AttendanceDataRange.getValues();
var template = ss.getSheetByName('Template');
for (var i=0; i < AttendanceObjects.length; i++) {
// Put the sheet you want to create in a variable
var sheet = ss.getSheetByName(AttendanceObjects[i]);
// Check if the sheet you want to create already exists. If so,
// log this and loop back. If not, create the new sheet.
if (sheet) {
Logger.log("Sheet " + AttendanceObjects[i] + "already exists");
} else {
template.copyTo(ss).setName(AttendanceObjects[i]);
}
}
return;
}
Mit diesem Skript kann ich mehrere Kopien von Blättern aus der Vorlage erstellen, aber die doppelten Kopien behalten nicht die Berechtigungen für Zellen / Bereiche bei. Gibt es eine Möglichkeit, eine Schleifenfunktion hinzuzufügen, die die Berechtigung aus der Vorlage extrahiert und sie jedes Mal anwendet, wenn die Schleife template.copyTo
ein Blatt erstellt?